{"id":14284,"date":"2024-10-23T08:44:21","date_gmt":"2024-10-23T08:44:21","guid":{"rendered":"https:\/\/ptc.wpml.org\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/"},"modified":"2026-03-20T09:52:39","modified_gmt":"2026-03-20T09:52:39","slug":"traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine","status":"publish","type":"documentation","link":"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/","title":{"rendered":"Guide d&#8217;internationalisation (i18n) et de localisation Rails"},"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\">Configurez l&#8217;i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l&#8217;IA. <\/p>\n\n\n\n<p>Pour montrer comment fonctionne l&#8217;internationalisation Rails en pratique, nous avons cr\u00e9\u00e9 une petite application de d\u00e9monstration Ruby on Rails. L&#8217;application affiche l&#8217;heure actuelle du serveur avec un bouton d&#8217;actualisation et comprend un s\u00e9lecteur de langue simple. <\/p>\n\n\n\n<p>Vous pouvez appliquer ces concepts \u00e0 votre application Rails existante, ou cr\u00e9er une nouvelle application Rails avec <code>rails new YourAppName<\/code> et la d\u00e9velopper avec nous.<\/p>\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 le code source complet, consultez GitHub : <a href=\"https:\/\/github.com\/OnTheGoSystems\/rails-i18n\" target=\"_blank\" rel=\"noreferrer noopener\">Application de d\u00e9monstration Rails i18n<\/a><br\/><\/p>\n<\/div><\/div>\n\n\n\n<div id=\"h-translating-texts\" class=\"wp-block-uagb-container uagb-block-480d8777 default uagb-is-root-container\">\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"rails-i18n\">Configuration de l&#8217;internationalisation Rails (i18n)<\/h2>\n\n\n\n<p>L&#8217;internationalisation Rails n\u00e9cessite trois \u00e9tapes de configuration : d\u00e9finir les param\u00e8tres r\u00e9gionaux disponibles, ajouter les param\u00e8tres r\u00e9gionaux \u00e0 vos URL et faire en sorte que Rails charge les bons param\u00e8tres r\u00e9gionaux pour chaque requ\u00eate. Vous voudrez \u00e9galement installer la gem <code>rails-i18n<\/code>, qui fournit des donn\u00e9es de param\u00e8tres r\u00e9gionaux telles que les noms de mois traduits, les r\u00e8gles de pluralisation et les messages d&#8217;erreur Rails par d\u00e9faut. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-set-available-locales\">D\u00e9finir les param\u00e8tres r\u00e9gionaux disponibles<\/h3>\n\n\n\n<p>Tout d&#8217;abord, dans <code>config\/application.rb<\/code>, indiquez \u00e0 Rails quelles langues l&#8217;application doit prendre en charge et d\u00e9finissez des param\u00e8tres r\u00e9gionaux par d\u00e9faut :<\/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>config.i18n.default_locale = :en\nconfig.i18n.available_locales = [:en, :es, :de]<\/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: #D8DEE9FF\">config<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">i18n<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">default_locale <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">en<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">config<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">i18n<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">available_locales <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[:<\/span><span style=\"color: #D8DEE9FF\">en<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">es<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">de<\/span><span style=\"color: #ECEFF4\">]<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Cette configuration indique \u00e0 Rails :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L&#8217;anglais (<code>:en<\/code>) est la langue par d\u00e9faut<\/li>\n\n\n\n<li>L&#8217;application prend en charge l&#8217;anglais, l&#8217;espagnol et l&#8217;allemand<\/li>\n\n\n\n<li>Les utilisateurs peuvent basculer entre ces trois langues<\/li>\n<\/ul>\n\n\n\n<p>Vous pouvez ajouter tous les codes de langue dont vous avez besoin.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-add-locale-to-urls\">Ajouter les param\u00e8tres r\u00e9gionaux aux URL<\/h3>\n\n\n\n<p>Ensuite, ajoutez les param\u00e8tres r\u00e9gionaux \u00e0 l&#8217;URL afin que chaque langue ait son propre chemin, comme <code>\/en\/time<\/code> ou <code>\/es\/time<\/code> :<\/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># config\/routes.rb\nscope \"\/:locale\" do\n get '\/time', to: 'home#index', as: :time_display\nend<\/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: #616E88\"># config\/routes.rb<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">scope <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">\/:locale<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  get <\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">\/time<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> to<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">home#index<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> as<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">time_display<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">end<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Cela cr\u00e9e des URL sp\u00e9cifiques aux param\u00e8tres r\u00e9gionaux pour votre application Rails. Les utilisateurs peuvent acc\u00e9der aux diff\u00e9rentes versions linguistiques en modifiant le param\u00e8tre de param\u00e8tres r\u00e9gionaux dans l&#8217;URL. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-configure-locale-switching\">Configurer le changement de param\u00e8tres r\u00e9gionaux<\/h3>\n\n\n\n<p>Enfin, dans <code>app\/controllers\/application_controller.rb<\/code>, assurez-vous que Rails charge les bons param\u00e8tres r\u00e9gionaux \u00e0 partir de l&#8217;URL et les inclut dans tous les liens :<\/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>class ApplicationController &lt; ActionController::Base\n around_action :switch_locale\n\n def switch_locale(&amp;action)\n locale = params[:locale] || I18n.default_locale\n I18n.with_locale(locale, &amp;action)\n end\n\n def default_url_options\n { locale: I18n.locale }\n end\nend<\/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\">ApplicationController<\/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::Base<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  around_action <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">switch_locale<\/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\">switch_locale<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">&amp;<\/span><span style=\"color: #D8DEE9\">action<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    locale <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> params<\/span><span style=\"color: #ECEFF4\">[:<\/span><span style=\"color: #D8DEE9FF\">locale<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">||<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">I18n<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">default_locale<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">I18n<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">with_locale<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">locale<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&amp;<\/span><span style=\"color: #D8DEE9FF\">action<\/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\">default_url_options<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> locale<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">I18n<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">locale <\/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: #81A1C1\">end<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Ce code :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lit les param\u00e8tres r\u00e9gionaux \u00e0 partir du param\u00e8tre d&#8217;URL<\/li>\n\n\n\n<li>Revient aux param\u00e8tres r\u00e9gionaux par d\u00e9faut si aucun param\u00e8tre n&#8217;est pr\u00e9sent<\/li>\n\n\n\n<li>Garantit que toutes les URL g\u00e9n\u00e9r\u00e9es incluent les param\u00e8tres r\u00e9gionaux actuels<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-install-the-rails-i18n-gem\">Installer la gem rails-i18n<\/h3>\n\n\n\n<p>La gem rails-i18n fournit des donn\u00e9es de param\u00e8tres r\u00e9gionaux pour plusieurs langues, notamment les noms de mois traduits, les r\u00e8gles de pluralisation et les messages d&#8217;erreur Rails par d\u00e9faut. Cela vous \u00e9vite de traduire vous-m\u00eame ces cha\u00eenes standard. <\/p>\n\n\n\n<p>Ajoutez-la \u00e0 votre Gemfile :<\/p>\n\n\n\n<p><code>gem 'rails-i18n'<\/code><\/p>\n\n\n\n<p>Ensuite, ex\u00e9cutez :<\/p>\n\n\n\n<p><code>bundle install<\/code><\/p>\n\n\n\n<p>Rails est maintenant enti\u00e8rement configur\u00e9 pour l&#8217;internationalisation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"adding-a-language-switcher\">Ajouter un s\u00e9lecteur de langue<\/h2>\n\n\n\n<p>Maintenant que votre application Rails prend en charge plusieurs param\u00e8tres r\u00e9gionaux, vos utilisateurs internationaux ont besoin d&#8217;un moyen de basculer entre les langues. Rails rend cela simple car la m\u00e9thode <code>default_url_options<\/code> dans <strong>ApplicationController<\/strong> inclut automatiquement les param\u00e8tres r\u00e9gionaux actuels dans toutes les URL g\u00e9n\u00e9r\u00e9es. <\/p>\n\n\n\n<p>Cela signifie que vous pouvez cr\u00e9er un s\u00e9lecteur de langue qui met uniquement \u00e0 jour le param\u00e8tre de param\u00e8tres r\u00e9gionaux tout en gardant l&#8217;utilisateur sur la m\u00eame page.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-create-the-language-switcher-ui\">Cr\u00e9er l&#8217;interface du s\u00e9lecteur de langue<\/h3>\n\n\n\n<p>Ajoutez le s\u00e9lecteur de langue \u00e0 votre fichier de mise en page. Dans notre application de d\u00e9monstration, le s\u00e9lecteur est ajout\u00e9 dans <code>app\/views\/layouts\/application.html.erb<\/code> : <\/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>&lt;nav&gt;\n  &lt;%= link_to \"English\", url_for(locale: :en) %&gt; |\n  &lt;%= link_to \"Espa\u00f1ol\", url_for(locale: :es) %&gt; |\n  &lt;%= link_to \"Deutsch\", url_for(locale: :de) %&gt;\n&lt;\/nav&gt;<\/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\">&lt;nav&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> link_to <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">English<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> url_for<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">locale<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">en<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;<\/span><span style=\"color: #D8DEE9FF\"> |<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> link_to <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Espa\u00f1ol<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> url_for<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">locale<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">es<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;<\/span><span style=\"color: #D8DEE9FF\"> |<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> link_to <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Deutsch<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> url_for<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">locale<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">de<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;\/nav&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Chaque lien utilise <code>url_for(locale: :locale_code)<\/code> pour g\u00e9n\u00e9rer une URL avec les param\u00e8tres r\u00e9gionaux sp\u00e9cifi\u00e9s. Lorsqu&#8217;un utilisateur clique sur un lien : <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La m\u00e9thode <code>switch_locale<\/code> dans <strong>ApplicationController<\/strong> d\u00e9tecte le changement <\/li>\n\n\n\n<li>Rails affiche la page dans la nouvelle langue<\/li>\n<\/ul>\n\n\n\n<p>Parce que vous avez d\u00e9fini <code>default_url_options<\/code> dans <strong>ApplicationController<\/strong>, Rails inclut automatiquement les param\u00e8tres r\u00e9gionaux dans tous les liens g\u00e9n\u00e9r\u00e9s. Cela signifie que les param\u00e8tres r\u00e9gionaux persistent lorsque les utilisateurs naviguent dans votre application. Vous n&#8217;avez pas besoin d&#8217;ajouter manuellement des param\u00e8tres de param\u00e8tres r\u00e9gionaux \u00e0 chaque lien.  <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-style-your-language-switcher\">Styliser votre s\u00e9lecteur de langue<\/h3>\n\n\n\n<p>Vous pouvez styliser le s\u00e9lecteur de langue dans <code>app\/assets\/stylesheets\/application.css<\/code> pour qu&#8217;il corresponde \u00e0 votre design. L&#8217;application de d\u00e9monstration inclut un style de base pour rendre le s\u00e9lecteur visible et convivial. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"setting-up-translation-keys-in-rails-views\">Configuration des cl\u00e9s de traduction dans les vues Rails<\/h2>\n\n\n\n<p>Avant de pouvoir traduire votre application, tout le texte visible par l&#8217;utilisateur doit se trouver dans les fichiers i18n Rails au lieu d&#8217;\u00eatre cod\u00e9 en dur. Rails fournit la m\u00e9thode d&#8217;aide <code>t<\/code> (abr\u00e9viation de <code>translate<\/code>) pour rechercher et afficher les cha\u00eenes traduites. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-replace-hard-coded-text-with-translation-keys\">Remplacer le texte cod\u00e9 en dur par des cl\u00e9s de traduction<\/h3>\n\n\n\n<p>Rails utilise l&#8217;aide int\u00e9gr\u00e9e <code>I18n.t<\/code> (ou simplement <code>t<\/code>) pour rechercher des cha\u00eenes dans vos fichiers de traduction.<\/p>\n\n\n\n<div id=\"fancy-box\" class=\"wp-block-uagb-container uagb-block-107dc1c1 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-30525fed\">\n<div class=\"wp-block-uagb-container uagb-block-5c2e3e70\"><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-764d65b8\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-5720b20d\"><h4 class=\"uagb-heading-text\"><strong><strong><strong><strong><strong><strong>Correct (en utilisant les cl\u00e9s de traduction) :<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/h4><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-74b679ef\">\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;--cbp-line-number-width:calc(1 * 0.6 * .875rem);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\">ERB<\/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>&lt;h1&gt;&lt;%= t(:hello) %&gt;&lt;\/h1&gt;\n&lt;p&gt;&lt;%= t(:current_time, time: @time) %&gt;&lt;\/p&gt;\n&lt;button id=\"click-me\"&gt;&lt;%= t(:refresh) %&gt;&lt;\/button&gt;\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\">&lt;h1&gt;&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> t<\/span><span style=\"color: #ECEFF4\">(:<\/span><span style=\"color: #D8DEE9FF\">hello<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;&lt;\/h1&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;p&gt;&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> t<\/span><span style=\"color: #ECEFF4\">(:<\/span><span style=\"color: #D8DEE9FF\">current_time<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> time<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">time<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;&lt;\/p&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;button<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">id<\/span><span style=\"color: #ECEFF4\">=<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">click-me<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #81A1C1\">&gt;&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> t<\/span><span style=\"color: #ECEFF4\">(:<\/span><span style=\"color: #D8DEE9FF\">refresh<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;&lt;\/button&gt;<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n<\/div>\n<\/div><\/div>\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-container uagb-block-36736043 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-33b94f98\">\n<div class=\"wp-block-uagb-container uagb-block-c418e740\"><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-8811a44a\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-5eefa1c6\"><h4 class=\"uagb-heading-text\"><strong><strong><strong>Incorrect (texte cod\u00e9 en dur) :<\/strong><br\/><\/strong><\/strong><\/h4><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-effed741\">\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;--cbp-line-number-width:calc(1 * 0.6 * .875rem);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>&lt;h1&gt;Hello&lt;\/h1&gt;\n&lt;p&gt;Current time: &lt;%= @time %&gt;&lt;\/p&gt;\n&lt;button&gt;Refresh&lt;\/button&gt;<\/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\">&lt;h1&gt;<\/span><span style=\"color: #D8DEE9FF\">Hello<\/span><span style=\"color: #81A1C1\">&lt;\/h1&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;p&gt;<\/span><span style=\"color: #D8DEE9FF\">Current time: <\/span><span style=\"color: #81A1C1\">&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">time<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;&lt;\/p&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;button&gt;<\/span><span style=\"color: #D8DEE9FF\">Refresh<\/span><span style=\"color: #81A1C1\">&lt;\/button&gt;<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Le texte cod\u00e9 en dur n&#8217;appara\u00eetra pas dans votre fichier YAML, ce qui signifie qu&#8217;il ne pourra pas \u00eatre traduit ult\u00e9rieurement. Utilisez toujours des cl\u00e9s de traduction pour tout texte visible par l&#8217;utilisateur. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-using-interpolation-in-translations\">Utiliser l&#8217;interpolation dans les traductions<\/h3>\n\n\n\n<p>Avez-vous remarqu\u00e9 le param\u00e8tre <code>time: @time<\/code> dans l&#8217;exemple ci-dessus ? C&#8217;est ce qu&#8217;on appelle l&#8217;interpolation. Elle vous permet d&#8217;ins\u00e9rer des valeurs dynamiques dans vos traductions. La cha\u00eene de traduction dans votre fichier YAML utilise <code>%{time}<\/code> comme placeholder :   <\/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>current_time: \"Current time: %{time}\"<\/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: #8FBCBB\">current_time<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Current time: %{time}<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Lorsque vous appelez l&#8217;aide <code>t<\/code> avec <code>time: @time<\/code>, Rails remplace <code>%{time}<\/code> par la valeur r\u00e9elle. Vous pouvez utiliser les noms de variables que vous souhaitez &#8211; assurez-vous simplement qu&#8217;ils correspondent entre le fichier YAML et votre vue. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"lazy-lookup\">Recherche paresseuse pour un code plus propre<\/h3>\n\n\n\n<p>Lorsque vos cl\u00e9s de traduction sont organis\u00e9es pour correspondre \u00e0 la structure de votre dossier de vues, Rails vous permet d&#8217;utiliser un raccourci appel\u00e9 <a href=\"https:\/\/guides.rubyonrails.org\/i18n.html#lazy-lookup\" target=\"_blank\" rel=\"noreferrer noopener\">recherche paresseuse<\/a>. Au lieu d&#8217;\u00e9crire le chemin complet de la cl\u00e9, utilisez un point initial : <\/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>&lt;!-- Au lieu de ceci : --&gt;\n&lt;%= t('home.index.hello') %&gt;\n\n&lt;!-- Vous pouvez \u00e9crire ceci : --&gt;\n&lt;%= t('.hello') %&gt;\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: #616E88\">&lt;!-- Instead of this: --&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> t<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">home.index.hello<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #616E88\">&lt;!-- You can write this: --&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> t<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">.hello<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Rails examine dans quel fichier de vue vous vous trouvez (<code>home\/index.html.erb<\/code>) et ajoute automatiquement <code>home.index<\/code>. devant votre cl\u00e9. Cela rend votre code plus propre et facilite le d\u00e9placement des vues. Si vous renommez ou d\u00e9placez une vue, les chemins de recherche paresseuse se mettent \u00e0 jour automatiquement.   <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"creating-and-organizing-translation-files\">Cr\u00e9er et organiser les fichiers de traduction<\/h2>\n\n\n\n<p>Maintenant que vous avez ajout\u00e9 des cl\u00e9s de traduction \u00e0 vos vues, vous devez d\u00e9finir ces cl\u00e9s dans un fichier YAML. Rails stocke ces d\u00e9finitions dans le r\u00e9pertoire <code>config\/locales\/<\/code>. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-add-keys-to-your-english-file\">Ajouter des cl\u00e9s \u00e0 votre fichier anglais<\/h3>\n\n\n\n<p>Les fichiers de traduction Rails utilisent une structure cl\u00e9-valeur simple. Ouvrez <code>config\/locales\/en.yml<\/code> et ajoutez les cl\u00e9s que vous avez r\u00e9f\u00e9renc\u00e9es dans vos vues : <\/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># config\/locales\/en.yml\nen:\n hello: \"Hello\"\n current_time: \"Current time: %{time}\"\n refresh: \"Refresh\"\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: #616E88\"># config\/locales\/en.yml<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">en<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">hello<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Hello<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">current_time<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Current time: %{time}<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">refresh<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Refresh<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dans cette structure i18n Rails :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>en<\/code>  est le code de langue (anglais)<\/li>\n\n\n\n<li><code>hello<\/code><code>current_time<\/code> et <code>refresh<\/code> sont des cl\u00e9s de traduction<\/li>\n\n\n\n<li>Les cha\u00eenes \u00e0 droite sont le texte r\u00e9el<\/li>\n\n\n\n<li><code>%{time}<\/code>  est un placeholder pour le contenu dynamique (interpolation)<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Il s&#8217;agit de votre fichier source. Il contient tout le texte dans votre langue par d\u00e9faut. Plus loin dans ce tutoriel, vous utiliserez PTC pour g\u00e9n\u00e9rer automatiquement des versions en espagnol, en allemand et dans d&#8217;autres langues.  <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-organizing-keys-with-nesting\">Organiser les cl\u00e9s avec l&#8217;imbrication<\/h3>\n\n\n\n<p>Pour utiliser la recherche paresseuse (le raccourci <code>.hello<\/code> de la <a href=\"#lazy-lookup\">section pr\u00e9c\u00e9dente<\/a>), organisez vos cl\u00e9s pour qu&#8217;elles correspondent \u00e0 la structure de votre dossier de vues :<\/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>en:\n home:\n index:\n hello: \"Hello\"\n current_time: \"Current time: %{time}\"\n refresh: \"Refresh\"\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: #8FBCBB\">en<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">home<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">index<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">hello<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Hello<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">current_time<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Current time: %{time}<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">refresh<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Refresh<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Cela regroupe toutes les traductions pour <code>app\/views\/home\/index.html.erb<\/code> sous <code>home.index<\/code>. Vous pouvez maintenant utiliser <code>t('.hello')<\/code> dans cette vue au lieu de <code>t('home.index.hello')<\/code>. <\/p>\n\n\n\n<p>Au fur et \u00e0 mesure que votre application Rails se d\u00e9veloppe, vous pouvez \u00e9galement cr\u00e9er des espaces de noms pour les traductions partag\u00e9es (comme <code>shared.navigation<\/code> pour les menus) afin de garder les choses organis\u00e9es, mais cela est facultatif.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-add-javascript-strings-to-yaml\">Ajouter des cha\u00eenes JavaScript au YAML<\/h3>\n\n\n\n<p>Vos vues Rails sont maintenant internationalis\u00e9es, mais qu&#8217;en est-il de JavaScript ? Rails n&#8217;extrait pas automatiquement le texte des fichiers JavaScript. Si votre application contient du texte c\u00f4t\u00e9 client comme des alertes, des infobulles ou des messages de confirmation, vous devez les ajouter \u00e0 votre fichier de traduction anglais.  <\/p>\n\n\n\n<p>Par exemple, pour traduire une fen\u00eatre de confirmation, ajoutez la cha\u00eene \u00e0 <code>config\/locales\/en.yml<\/code> :<\/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># config\/locales\/en.yml\nen:\n confirm: \"Are you sure?\"<\/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: #616E88\"># config\/locales\/en.yml<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">en<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">confirm<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Are you sure?<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>\u00c0 ce stade, votre fichier <code>en.yml<\/code> contient tout le texte qui appara\u00eet dans votre application &#8211; \u00e0 la fois dans les vues Rails et dans JavaScript.<\/p>\n\n\n\n<p>Lorsque vous utilisez PTC pour traduire votre application (abord\u00e9 dans la section suivante), ces cha\u00eenes JavaScript seront traduites en m\u00eame temps que tout le reste.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-784dbcb6 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<h2 class=\"wp-block-heading\" id=\"translating-rails-with-ptc\">Traduire des applications Rails avec PTC<\/h2>\n\n\n\n<p>Il est maintenant temps d&#8217;obtenir des traductions pour tout le texte de votre application stock\u00e9 dans le fichier YAML. Au lieu de traduire manuellement des centaines de cha\u00eenes, vous pouvez utiliser <a href=\"https:\/\/ptc.wpml.org\/fr\/\" target=\"_blank\" rel=\"noreferrer noopener\">Private Translation Cloud (PTC)<\/a>.  <\/p>\n\n\n\n<p>PTC utilise l&#8217;IA pour traduire automatiquement vos fichiers YAML Rails tout en pr\u00e9servant leur structure et leurs cl\u00e9s. Vous pouvez commencer avec l&#8217;essai gratuit, qui vous permet de traduire 20 000 mots dans deux langues, sans carte de cr\u00e9dit. Ensuite, vous ne payez que ce que vous traduisez (pas de frais d&#8217;abonnement).  <\/p>\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:\/\/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\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Une fois que vous avez t\u00e9l\u00e9charg\u00e9 et traduit votre premier fichier, vous pouvez passer \u00e0 un flux de travail de localisation continue :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Int\u00e9gration <a href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/integration-de-github-avec-ptc\/\">GitHub<\/a>, <a href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/integration-de-gitlab-avec-ptc\/\">GitLab<\/a> ou <a href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/integration-de-bitbucket-avec-ptc\/\">Bitbucket<\/a> &#8211; Connectez votre d\u00e9p\u00f4t. PTC trouve vos fichiers YAML, les traduit et renvoie une demande de fusion avec les nouveaux fichiers de langue. <\/li>\n\n\n\n<li><a href=\"https:\/\/ptc.wpml.org\/documentation\/ptc-api-reference\/https:\/\/ptc.wpml.org\/documentation\/ptc-api-reference\/\">API\/CLI<\/a> &#8211; Int\u00e9grez dans votre pipeline CI\/CD en utilisant l&#8217;API PTC. <a href=\"https:\/\/github.com\/OnTheGoSystems\/ptc-cli-github-actions-rails\" target=\"_blank\" rel=\"noreferrer noopener\">Consultez un exemple de d\u00e9p\u00f4t Rails avec GitHub Actions<\/a>.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Pour ce guide, nous avons utilis\u00e9 <strong>l&#8217;int\u00e9gration Git<\/strong> pour un flux de travail enti\u00e8rement automatis\u00e9. PTC s&#8217;est connect\u00e9 \u00e0 notre d\u00e9p\u00f4t, a cr\u00e9\u00e9 des versions traduites comme <code>es.yml<\/code> et <code>de.yml<\/code>, et a ouvert une pull request avec les nouveaux fichiers dans le m\u00eame dossier. <\/p>\n\n\n\n<p>Une fois que vous fusionnez la pull request, Rails charge automatiquement les traductions. Lorsque les utilisateurs changent de langue, votre application affiche le texte correct. <\/p>\n\n\n\n<p>Pour une pr\u00e9sentation compl\u00e8te de la configuration, consultez notre <a href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/guide-de-demarrage-de-ptc\/\">Guide de d\u00e9marrage<\/a>.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-d0675b25 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<h2 class=\"wp-block-heading\" id=\"converting-translations-js\">Convertir les traductions pour JavaScript<\/h2>\n\n\n\n<p>Maintenant que vous avez des fichiers YAML traduits de PTC, vous devez rendre ces traductions disponibles pour JavaScript. JavaScript ne peut pas lire directement les fichiers YAML &#8211; il a besoin de fichiers JSON. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-installing-i18n-js\">Installer i18n-js<\/h3>\n\n\n\n<p>La gem <code>i18n-js<\/code> convertit vos fichiers de traduction YAML au format JSON que les navigateurs peuvent lire.<\/p>\n\n\n\n<p>Ajoutez la gem \u00e0 votre Gemfile :<\/p>\n\n\n\n<p><code>gem 'i18n-js'<\/code><\/p>\n\n\n\n<p>Ensuite, ex\u00e9cutez :<\/p>\n\n\n\n<p><code>bundle install<\/code><\/p>\n\n\n\n<p>Apr\u00e8s l&#8217;installation, initialisez la gem :<\/p>\n\n\n\n<p><code>i18n init<\/code><\/p>\n\n\n\n<p>Cela g\u00e9n\u00e8re un fichier de configuration. Mettez-le \u00e0 jour pour exporter les traductions vers <code>public\/locales.json<\/code> : <\/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># config\/i18n.rb\nrequire \"i18n-js\"\n\nI18n::JS.config do |config|\n config.export_i18n_js = false\n config.translations_path = \"public\/locales.json\"\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: #616E88\"># config\/i18n.rb<\/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\">i18n-js<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #8FBCBB\">I18n<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">JS<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">config <\/span><span style=\"color: #81A1C1\">do<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">|<\/span><span style=\"color: #D8DEE9\">config<\/span><span style=\"color: #ECEFF4\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  config<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">export_i18n_js <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">false<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  config<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">translations_path <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">public\/locales.json<\/span><span style=\"color: #ECEFF4\">\"<\/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:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-exporting-translations-to-json\">Exporter les traductions vers JSON<\/h3>\n\n\n\n<p>Ex\u00e9cutez la commande d&#8217;exportation pour g\u00e9n\u00e9rer le fichier JSON :<\/p>\n\n\n\n<p><code>i18n export<\/code><\/p>\n\n\n\n<p>Cela lit tous vos fichiers YAML (<code>en.yml<\/code>, <code>es.yml<\/code>, <code>de.yml<\/code>) et cr\u00e9e <code>public\/locales.json<\/code> avec toutes les traductions dans un format que JavaScript peut utiliser.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Charger les traductions dans JavaScript<\/h3>\n\n\n\n<p>Rails 7+ inclut <a href=\"https:\/\/github.com\/rails\/importmap-rails\" target=\"_blank\" rel=\"noreferrer noopener\">Importmap<\/a> pour g\u00e9rer les d\u00e9pendances JavaScript sans bundlers.<\/p>\n\n\n\n<p>\u00c9pinglez la biblioth\u00e8que i18n-js dans <code>config\/importmap.rb<\/code> :<\/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># config\/importmap.rb\npin \"i18n-js\", to: \"https:\/\/esm.sh\/i18n-js@latest\/dist\/import\/index.js\"\npin \"load_locale\", to: \"load_locale.js\"\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: #616E88\"># config\/importmap.rb<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">pin <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">i18n-js<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> to<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">https:\/\/esm.sh\/i18n-js@latest\/dist\/import\/index.js<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">pin <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">load_locale<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> to<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">load_locale.js<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Cr\u00e9ez une fonction de chargement dans <code>app\/javascript\/load_locale.js<\/code> :<\/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>\/\/ app\/javascript\/load_locale.js\nexport async function loadLocale() {\n const response = await fetch('\/locales.json');\n const data = await response.json();\n return data;\n}\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: #616E88\">\/\/ app\/javascript\/load_locale.js<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">export<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">async<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">loadLocale<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">response<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">await<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">fetch<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">\/locales.json<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">await<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">response<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">json<\/span><span style=\"color: #D8DEE9FF\">()<\/span><span style=\"color: #81A1C1\">;<\/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: #D8DEE9\">data<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Cette fonction r\u00e9cup\u00e8re le fichier JSON contenant toutes vos traductions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-using-translations-in-javascript\">Utiliser les traductions dans JavaScript<\/h3>\n\n\n\n<p>Transmettez les param\u00e8tres r\u00e9gionaux actuels \u00e0 JavaScript en les ajoutant \u00e0 la balise <code>&lt;body&gt;<\/code> dans votre mise en page :<\/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>&lt;!-- app\/views\/layouts\/application.html.erb --&gt;\n&lt;body data-locale=\"&lt;%= I18n.locale %&gt;\"&gt;<\/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: #616E88\">&lt;!-- app\/views\/layouts\/application.html.erb --&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;body<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">data-locale<\/span><span style=\"color: #ECEFF4\">=<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #81A1C1\">&lt;%=<\/span><span style=\"color: #A3BE8C\"> <\/span><span style=\"color: #8FBCBB\">I18n<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #A3BE8C\">locale <\/span><span style=\"color: #81A1C1\">%&gt;<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Ensuite, importez <strong>i18n-js<\/strong> et utilisez les traductions dans votre JavaScript :<\/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>\/\/ app\/javascript\/application.js\nimport { I18n } from \"i18n-js\"\nimport { loadLocale } from \".\/load_locale\"\n\ndocument.addEventListener('turbo:load', async () =&gt; {\n \/\/ Charger toutes les traductions\n const translations = await loadLocale()\n const i18n = new I18n(translations)\n\n  \/\/ D\u00e9finir les param\u00e8tres r\u00e9gionaux \u00e0 partir de la balise body\n i18n.locale = document.body.dataset['locale']\n\n  \/\/ Utiliser les traductions dans votre JavaScript\n if (confirm(i18n.t('confirm'))) {\n \/\/ L'utilisateur a cliqu\u00e9 sur OK\n }\n})\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: #616E88\">\/\/ app\/javascript\/application.js<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">I18n<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">i18n-js<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">loadLocale<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">.\/load_locale<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9\">document<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">addEventListener<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">turbo:load<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">async<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">  <\/span><span style=\"color: #616E88\">\/\/ Load all translations<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">translations<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">await<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">loadLocale<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">i18n<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">I18n<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">translations<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #ECEFF4\">  <\/span><span style=\"color: #616E88\">\/\/ Set the locale from the body tag<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #D8DEE9\">i18n<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">locale<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">document<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">body<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">dataset<\/span><span style=\"color: #D8DEE9FF\">[<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">locale<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #D8DEE9FF\">]<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #ECEFF4\">  <\/span><span style=\"color: #616E88\">\/\/ Use translations in your JavaScript<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #88C0D0\">confirm<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">i18n<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">t<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">confirm<\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #D8DEE9FF\">))) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ User clicked OK<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>La m\u00e9thode <code>i18n.t()<\/code> fonctionne comme l&#8217;aide <code>t<\/code> de Rails. Lorsque les utilisateurs changent de langue, JavaScript utilise automatiquement les traductions correctes \u00e0 partir de l&#8217;attribut data-locale. <\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-149b981b alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<h2 class=\"wp-block-heading\" id=\"other-rails-i18n-features\" style=\"margin-bottom:32px\">Autres fonctionnalit\u00e9s i18n Rails<\/h2>\n\n\n\n<p>Ce guide a couvert le flux de travail d&#8217;internationalisation Rails de base : configuration de l&#8217;i18n, organisation des traductions et automatisation du processus de traduction. Rails i18n inclut des fonctionnalit\u00e9s suppl\u00e9mentaires dont vous pourriez avoir besoin au fur et \u00e0 mesure que votre application se d\u00e9veloppe. <\/p>\n\n\n\n<details class=\"wp-block-details has-ast-global-color-3-color has-text-color has-link-color has-medium-font-size wp-elements-ca978aa574b0dfc46e0cb3b603682483 is-layout-flow wp-block-details-is-layout-flow\" style=\"margin-bottom:16px\" open><summary><strong>Comment localiser les dates et les heures ?<\/strong><\/summary>\n<div class=\"wp-block-uagb-advanced-heading uagb-block-9ab5d203\"><p class=\"uagb-heading-text\">Rails fournit l&#8217;aide <code>l<\/code> (abr\u00e9viation de localize) pour formater les dates et les heures selon les conventions de chaque param\u00e8tre r\u00e9gional :<br\/><\/p><\/div>\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>&lt;%= l Time.now, format: :long %&gt;<\/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\">&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> l <\/span><span style=\"color: #8FBCBB\">Time<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">now<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> format<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">long <\/span><span style=\"color: #81A1C1\">%&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-ast-global-color-1-color has-text-color has-link-color wp-elements-5ae58cb81546a70a12ae1f0b8aabf014\" style=\"font-size:16px\">La gem rails-i18n que vous avez install\u00e9e fournit des formats de date et d&#8217;heure par d\u00e9faut pour de nombreuses langues, y compris les noms de mois traduits et le formatage sp\u00e9cifique aux param\u00e8tres r\u00e9gionaux. Vous pouvez \u00e9galement d\u00e9finir des formats personnalis\u00e9s dans vos fichiers YAML. <\/p>\n\n\n\n<p class=\"has-ast-global-color-5-color has-text-color has-link-color wp-elements-d34be703a241fc327e87ef4c1579093e\" style=\"font-size:16px\"><a href=\"https:\/\/guides.rubyonrails.org\/i18n.html#adding-date-time-formats\" target=\"_blank\" rel=\"noreferrer noopener\">En savoir plus sur la localisation des dates et des heures<\/a>.<br\/><\/p>\n<\/details>\n\n\n\n<div class=\"wp-block-uagb-separator uagb-block-1ea02519\"><div class=\"uagb-separator-spacing-wrapper\"><div class=\"wp-block-uagb-separator__inner\" style=\"--my-background-image:\"><\/div><\/div><\/div>\n\n\n\n<details class=\"wp-block-details has-ast-global-color-3-color has-text-color has-link-color has-medium-font-size wp-elements-8e902d9d2dbd6e16a635cba0313225d3 is-layout-flow wp-block-details-is-layout-flow\" style=\"margin-bottom:16px\"><summary><strong>Comment localiser les nombres et les devises ?<\/strong><\/summary>\n<div class=\"wp-block-uagb-advanced-heading uagb-block-e9590e6e\"><p class=\"uagb-heading-text\">Rails inclut des aides pour formater les nombres et les devises selon les param\u00e8tres r\u00e9gionaux :<\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-466290a3 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-5e545da2\">\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;--cbp-line-number-width:calc(1 * 0.6 * .875rem);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>&lt;%= number_to_currency(100, locale: :es) %&gt; &lt;!-- \u20ac100.00 --&gt;\n&lt;%= number_with_delimiter(1000000) %&gt; &lt;!-- 1,000,000 --&gt;\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\">&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> number_to_currency<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">100<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> locale<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">es<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\">&lt;!-- \u20ac100.00 --&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;%=<\/span><span style=\"color: #D8DEE9FF\"> number_with_delimiter<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">1000000<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%&gt;<\/span><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #616E88\">&lt;!-- 1,000,000 --&gt;<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n<\/div>\n\n\n\n<p style=\"font-size:16px\">Ces aides respectent les conventions sp\u00e9cifiques aux param\u00e8tres r\u00e9gionaux pour les s\u00e9parateurs d\u00e9cimaux, les d\u00e9limiteurs de milliers et les symboles de devise.<\/p>\n\n\n\n<p class=\"has-ast-global-color-5-color has-text-color has-link-color wp-elements-52a82331747fe19cdb0ec089b76c755b\" style=\"font-size:16px\"><a href=\"https:\/\/guides.rubyonrails.org\/i18n.html#overview-of-other-built-in-methods-that-provide-i18n-support\" target=\"_blank\" rel=\"noreferrer noopener\">En savoir plus sur la localisation des nombres<\/a>.<\/p>\n<\/div><\/div>\n<\/details>\n\n\n\n<div class=\"wp-block-uagb-separator uagb-block-1788b674\"><div class=\"uagb-separator-spacing-wrapper\"><div class=\"wp-block-uagb-separator__inner\" style=\"--my-background-image:\"><\/div><\/div><\/div>\n\n\n\n<details class=\"wp-block-details has-ast-global-color-3-color has-text-color has-link-color has-medium-font-size wp-elements-0ca16ce8e3d5a52f849fb06021c11867 is-layout-flow wp-block-details-is-layout-flow\" style=\"margin-bottom:16px\"><summary><strong>Puis-je cr\u00e9er diff\u00e9rents fichiers de vue pour chaque langue ?<\/strong><\/summary>\n<div class=\"wp-block-uagb-advanced-heading uagb-block-62777af3\"><p class=\"uagb-heading-text\">Oui. Pour les pages dont le contenu varie consid\u00e9rablement selon les param\u00e8tres r\u00e9gionaux, vous pouvez cr\u00e9er des fichiers de vue distincts : <\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-0d2ee900 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-728f8d35\">\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;--cbp-line-number-width:calc(1 * 0.6 * .875rem);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\">ERB<\/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>app\/views\/pages\/\n about.html.erb &lt;!-- Par d\u00e9faut --&gt;\n about.es.html.erb &lt;!-- Version espagnole --&gt;\n about.de.html.erb &lt;!-- Version allemande --&gt;\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: #D8DEE9FF\">app\/views\/pages\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  about.html.erb     <\/span><span style=\"color: #616E88\">&lt;!-- Default --&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  about.es.html.erb  <\/span><span style=\"color: #616E88\">&lt;!-- Spanish version --&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  about.de.html.erb  <\/span><span style=\"color: #616E88\">&lt;!-- German version --&gt;<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<p style=\"font-size:16px\">Rails affiche automatiquement la vue appropri\u00e9e en fonction des param\u00e8tres r\u00e9gionaux actuels.<\/p>\n\n\n\n<p class=\"has-ast-global-color-5-color has-text-color has-link-color wp-elements-45d2b24f36028d595036d0989e1508a8\" style=\"font-size:16px\"><a href=\"https:\/\/guides.rubyonrails.org\/i18n.html#localized-views\" target=\"_blank\" rel=\"noreferrer noopener\">En savoir plus sur les vues localis\u00e9es<\/a>.<\/p>\n<\/details>\n\n\n\n<div class=\"wp-block-uagb-separator uagb-block-c911dcdc\"><div class=\"uagb-separator-spacing-wrapper\"><div class=\"wp-block-uagb-separator__inner\" style=\"--my-background-image:\"><\/div><\/div><\/div>\n<\/div><\/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>Pr\u00eat \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\">D\u00e9marrez votre essai gratuit de 30 jours avec PTC et obtenez 20 000 mots traduits en deux langues \u2014 aucune carte de cr\u00e9dit requise.<\/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-bcf68176\"><div class=\"uagb-buttons__wrap uagb-buttons-layout-wrap \">\n<div class=\"wp-block-uagb-buttons-child uagb-buttons__outer-wrap uagb-block-9b76d234 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\">Dans ce guide i18n Rails<\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-889b1ee5\"><p class=\"uagb-heading-text\"><a href=\"#rails-i18n\">Configuration de l&#8217;internationalisation Rails (i18n)<\/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=\"#adding-a-language-switcher\">Ajouter un s\u00e9lecteur de langue<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-6e2782c9\"><p class=\"uagb-heading-text\"><a href=\"#setting-up-translation-keys-in-rails-views\">Configuration des cl\u00e9s de traduction dans les vues Rails<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-f18e849a\"><p class=\"uagb-heading-text\"><a href=\"#creating-and-organizing-translation-files\">Cr\u00e9er et organiser les fichiers de traduction<\/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=\"#translating-rails-with-ptc\">Traduire des applications Rails avec PTC<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-afb5e89c\"><p class=\"uagb-heading-text\"><a href=\"#converting-translations-js\">Convertir les traductions pour JavaScript<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-fe1bfd59\"><p class=\"uagb-heading-text\"><a href=\"#other-rails-i18n-features\">Autres fonctionnalit\u00e9s i18n Rails<\/a><\/p><\/div>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-alpha-channel-opacity has-background is-style-wide\" style=\"margin-top:12px;margin-bottom:12px;background-color:#cebfe33b;color:#cebfe33b\"\/>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-0e84a373 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" srcset=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/robot-min.png ,https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/robot-min.png 780w, https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/robot-min.png 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/robot-min.png\" alt=\"\" class=\"uag-image-16109\" width=\"581\" height=\"70\" title=\"\" loading=\"lazy\" role=\"presentation\"><\/figure><\/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-layout-grid uagb-block-62860ec6\">\n<div class=\"wp-block-uagb-image alignleft uagb-block-e695dee1 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-left\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" srcset=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/update-translation.svg ,https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/update-translation.svg 780w, https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/update-translation.svg 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/update-translation.svg\" alt=\"\" class=\"uag-image-15853\" width=\"18\" height=\"18\" title=\"\" loading=\"lazy\" role=\"presentation\"><\/figure><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-4a396755\"><p class=\"uagb-heading-text\">Pr\u00eat \u00e0 traduire votre application Rails ? Inscrivez-vous pour un essai gratuit de 30 jours de PTC.<\/p><\/div>\n<\/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-buttons uagb-buttons__outer-wrap uagb-btn__default-btn uagb-btn-tablet__default-btn uagb-btn-mobile__default-btn uagb-block-65c7e5f4\"><div class=\"uagb-buttons__wrap uagb-buttons-layout-wrap \">\n<div class=\"wp-block-uagb-buttons-child uagb-buttons__outer-wrap uagb-block-6408a1c5 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?utm_source=docs&amp;utm_medium=sidebar&amp;utm_campaign=react\" rel=\"follow noopener\" target=\"_self\" role=\"button\"><div class=\"uagb-button__link\">Traduire avec PTC<\/div><\/a><\/div><\/div>\n<\/div><\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Configurez l&#8217;i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l&#8217;IA. Pour montrer comment fonctionne l&#8217;internationalisation Rails en pratique, nous avons cr\u00e9\u00e9 une petite application de d\u00e9monstration Ruby on Rails. L&#8217;application affiche l&#8217;heure actuelle du serveur avec un bouton d&#8217;actualisation et comprend un s\u00e9lecteur de langue simple. [&hellip;]<\/p>\n","protected":false},"parent":0,"menu_order":21,"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":[38],"class_list":["post-14284","documentation","type-documentation","status-publish","hentry","resources-formats-de-fichiers-de-ressources-pris-en-charge"],"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>Traductions Ruby on Rails avec une IA de qualit\u00e9 humaine<\/title>\n<meta name=\"description\" content=\"Configurez l&#039;i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l&#039;IA.\" \/>\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\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guide d&#039;internationalisation (i18n) et de localisation Rails\" \/>\n<meta property=\"og:description\" content=\"Configurez l&#039;i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l&#039;IA.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/\" \/>\n<meta property=\"og:site_name\" content=\"PTC\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-20T09:52:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/robot-min.png\" \/>\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=\"16 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\\\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\\\/\",\"url\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\\\/\",\"name\":\"Traductions Ruby on Rails avec une IA de qualit\u00e9 humaine\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ptc.wpml.org\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/robot-min.png\",\"datePublished\":\"2024-10-23T08:44:21+00:00\",\"dateModified\":\"2026-03-20T09:52:39+00:00\",\"description\":\"Configurez l'i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l'IA.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ptc.wpml.org\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/robot-min.png\",\"contentUrl\":\"https:\\\/\\\/ptc.wpml.org\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/robot-min.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\\\/#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\":\"Guide d&#8217;internationalisation (i18n) et de localisation Rails\"}]},{\"@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":"Traductions Ruby on Rails avec une IA de qualit\u00e9 humaine","description":"Configurez l'i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l'IA.","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\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/","og_locale":"fr_FR","og_type":"article","og_title":"Guide d'internationalisation (i18n) et de localisation Rails","og_description":"Configurez l'i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l'IA.","og_url":"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/","og_site_name":"PTC","article_modified_time":"2026-03-20T09:52:39+00:00","og_image":[{"url":"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/robot-min.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/","url":"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/","name":"Traductions Ruby on Rails avec une IA de qualit\u00e9 humaine","isPartOf":{"@id":"https:\/\/ptc.wpml.org\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/#primaryimage"},"image":{"@id":"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/#primaryimage"},"thumbnailUrl":"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/robot-min.png","datePublished":"2024-10-23T08:44:21+00:00","dateModified":"2026-03-20T09:52:39+00:00","description":"Configurez l'i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l'IA.","breadcrumb":{"@id":"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/#primaryimage","url":"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/robot-min.png","contentUrl":"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/11\/robot-min.png"},{"@type":"BreadcrumbList","@id":"https:\/\/ptc.wpml.org\/fr\/documentation\/traductions-ruby-on-rails-avec-une-ia-de-qualite-humaine\/#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":"Guide d&#8217;internationalisation (i18n) et de localisation Rails"}]},{"@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":[""],"toolset_post_editor_mode":["classic"],"adv-header-id-meta":[""],"stick-header-meta":[""],"theme-transparent-header-meta":[""],"_top_nav_excluded":[""],"_cms_nav_minihome":[""],"_wp_page_template":["default"],"_last_translation_edit_mode":["translation-editor"],"_wpml_word_count":["522"],"_yoast_indexnow_last_ping":["1774000309"],"cmplz_hide_cookiebanner":[""],"wpcf-order":["5"],"ast-main-header-display":[""],"ast-hfb-above-header-display":[""],"ast-hfb-below-header-display":[""],"ast-hfb-mobile-header-display":[""],"footer-sml-layout":[""],"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":[""],"ast-banner-title-visibility":[""],"ast-global-header-display":[""],"ast-site-content-layout":["normal-width-container"],"site-content-style":["default"],"site-sidebar-style":["default"],"_yoast_wpseo_title":["Traductions Ruby on Rails avec une IA de qualit\u00e9 humaine"],"_yoast_wpseo_metadesc":["Configurez l'i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l'IA."],"_uag_page_assets":["a:9:{s:3:\"css\";s:95834:\".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-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-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;}.wp-block-uagb-container.uagb-block-107dc1c1.wp-block-uagb-container{color: #d8dee9ff;}.wp-block-uagb-container.uagb-block-107dc1c1.wp-block-uagb-container *{color: #d8dee9ff;}.wp-block-uagb-container.uagb-block-107dc1c1 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-107dc1c1 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-107dc1c1 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-107dc1c1 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-107dc1c1 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-107dc1c1{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-107dc1c1 > .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-107dc1c1{box-shadow: 0px 0px   #00000070 ;padding-top: 32px;padding-bottom: 32px;padding-left: 32px;padding-right: 32px;margin-top:  !important;margin-bottom:  !important;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: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-30525fed .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-30525fed .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-30525fed .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-30525fed .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-30525fed .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-30525fed{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-30525fed > .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: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-30525fed{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;background-repeat: no-repeat;background-position: 50% 50%;background-size: 28px;background-attachment: scroll;background-clip: padding-box;flex-direction: row;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-5c2e3e70 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-5c2e3e70 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-5c2e3e70 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-5c2e3e70 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-5c2e3e70 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-5c2e3e70{max-width: 36px;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-5c2e3e70 > .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-5c2e3e70{min-height: 28px;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;background-repeat: no-repeat;background-position: 50% 50%;background-size: contain;background-attachment: scroll;background-image: url(https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/03\/Yes.png);background-clip: padding-box;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-764d65b8 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-764d65b8 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-764d65b8 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-764d65b8 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-764d65b8 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-764d65b8{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-764d65b8 > .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-764d65b8{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: 20px;column-gap: 20px;}.wp-block-uagb-advanced-heading.uagb-block-5720b20d.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-5720b20d.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-5720b20d.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-5720b20d.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-5720b20d .uagb-heading-text{font-size: 18px;}.wp-block-uagb-container.uagb-block-74b679ef.wp-block-uagb-container{color: #d8dee9ff;}.wp-block-uagb-container.uagb-block-74b679ef.wp-block-uagb-container *{color: #d8dee9ff;}.wp-block-uagb-container.uagb-block-74b679ef .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-74b679ef .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-74b679ef .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-74b679ef .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-74b679ef .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-74b679ef{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-74b679ef > .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-74b679ef{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: 20px;}.wp-block-uagb-container.uagb-block-36736043 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-36736043 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-36736043 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-36736043 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-36736043 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-36736043{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-36736043 > .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-36736043{box-shadow: 0px 0px   #00000070 ;padding-top: 12px;padding-bottom: 16px;padding-left: 32px;padding-right: 32px;margin-top:  !important;margin-bottom:  !important;overflow: visible;order: initial;border-top-width: 0px;border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;border-style: solid;border-color: var(--ast-global-color-4);row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-33b94f98 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-33b94f98 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-33b94f98 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-33b94f98 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-33b94f98 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-33b94f98{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-33b94f98 > .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: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-33b94f98{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;background-repeat: no-repeat;background-position: 50% 50%;background-size: 28px;background-attachment: scroll;background-clip: padding-box;flex-direction: row;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-c418e740 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-c418e740 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-c418e740 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-c418e740 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-c418e740 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-c418e740{max-width: 36px;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-c418e740 > .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-c418e740{min-height: 28px;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;background-repeat: no-repeat;background-position: 50% 50%;background-size: contain;background-attachment: scroll;background-image: url(https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/03\/No-1.png);background-clip: padding-box;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-8811a44a .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-8811a44a .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-8811a44a .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-8811a44a .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-8811a44a .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-8811a44a{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-8811a44a > .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-8811a44a{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: 20px;column-gap: 20px;}.wp-block-uagb-advanced-heading.uagb-block-5eefa1c6.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-5eefa1c6.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-5eefa1c6.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-5eefa1c6.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-5eefa1c6 .uagb-heading-text{font-size: 18px;}.wp-block-uagb-container.uagb-block-effed741 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-effed741 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-effed741 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-effed741 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-effed741 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-effed741{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-effed741 > .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-effed741{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: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-784dbcb6 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-784dbcb6 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-784dbcb6 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-784dbcb6 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-784dbcb6 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-784dbcb6{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-784dbcb6 > .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-784dbcb6{box-shadow: 0px 0px   #00000070 ;padding-top: 40px;padding-bottom: 40px;padding-left: 40px;padding-right: 40px;margin-top: 64px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;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);;row-gap: 0px;column-gap: 0px;}.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;}.wp-block-uagb-container.uagb-block-d0675b25 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-d0675b25 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-d0675b25 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-d0675b25 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-d0675b25 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-d0675b25{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-d0675b25 > .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-d0675b25{box-shadow: 0px 0px   #00000070 ;padding-top: 40px;padding-bottom: 40px;padding-left: 40px;padding-right: 40px;margin-top: 64px !important;margin-bottom: 32px !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.3);row-gap: 0px;column-gap: 0px;}.wp-block-uagb-container.uagb-block-149b981b .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-149b981b .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-149b981b .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-149b981b .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-149b981b .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-149b981b{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-149b981b > .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-149b981b{box-shadow: 0px 0px   #00000070 ;padding-top: 40px;padding-bottom: 40px;padding-left: 40px;padding-right: 40px;margin-top: 32px !important;margin-bottom: 64px !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.3);row-gap: 0px;column-gap: 0px;}.wp-block-uagb-advanced-heading.uagb-block-9ab5d203.wp-block-uagb-advanced-heading .uagb-heading-text{color: var(--ast-global-color-0);}.wp-block-uagb-advanced-heading.uagb-block-9ab5d203.wp-block-uagb-advanced-heading a{color: var(--ast-global-color-4);}.wp-block-uagb-advanced-heading.uagb-block-9ab5d203.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-9ab5d203.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-9ab5d203.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-9ab5d203.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-9ab5d203 .uagb-heading-text{font-size: 16px;}.uagb-block-1ea02519.wp-block-uagb-separator{text-align: center;}.uagb-block-1ea02519.wp-block-uagb-separator--text .wp-block-uagb-separator-element .uagb-html-tag{font-style: normal;line-height: 1em;}.uagb-block-1ea02519 .uagb-separator-spacing-wrapper{margin-bottom: 16px;}.uagb-block-1ea02519.wp-block-uagb-separator:not(.wp-block-uagb-separator--text):not(.wp-block-uagb-separator--icon) .wp-block-uagb-separator__inner{-webkit-mask-size: 5px 100%;border-top-width: 1px;width: 100%;border-top-color: rgba(202,224,232,0.18);border-top-style: solid;margin-top: 5px;margin-bottom: 5px;}.wp-block-uagb-advanced-heading.uagb-block-e9590e6e.wp-block-uagb-advanced-heading .uagb-heading-text{color: var(--ast-global-color-0);}.wp-block-uagb-advanced-heading.uagb-block-e9590e6e.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-e9590e6e.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-e9590e6e.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-e9590e6e.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-e9590e6e .uagb-heading-text{font-size: 16px;}.wp-block-uagb-container.uagb-block-466290a3 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-466290a3 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-466290a3 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-466290a3 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-466290a3 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-466290a3{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-466290a3 > .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-466290a3{box-shadow: 0px 0px   #00000070 ;padding-top: 12px;padding-bottom: 16px;padding-left: 32px;padding-right: 32px;margin-top:  !important;margin-bottom:  !important;overflow: visible;order: initial;border-top-width: 0px;border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;border-style: solid;border-color: var(--ast-global-color-4);row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-5e545da2 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-5e545da2 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-5e545da2 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-5e545da2 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-5e545da2 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-5e545da2{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-5e545da2 > .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-5e545da2{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: 20px;column-gap: 20px;}.uagb-block-1788b674.wp-block-uagb-separator{text-align: center;}.uagb-block-1788b674.wp-block-uagb-separator--text .wp-block-uagb-separator-element .uagb-html-tag{font-style: normal;line-height: 1em;}.uagb-block-1788b674 .uagb-separator-spacing-wrapper{margin-bottom: 16px;}.uagb-block-1788b674.wp-block-uagb-separator:not(.wp-block-uagb-separator--text):not(.wp-block-uagb-separator--icon) .wp-block-uagb-separator__inner{-webkit-mask-size: 5px 100%;border-top-width: 1px;width: 100%;border-top-color: rgba(202,224,232,0.18);border-top-style: solid;margin-top: 5px;margin-bottom: 5px;}.wp-block-uagb-advanced-heading.uagb-block-62777af3.wp-block-uagb-advanced-heading .uagb-heading-text{color: var(--ast-global-color-0);}.wp-block-uagb-advanced-heading.uagb-block-62777af3.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-62777af3.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-62777af3.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-62777af3.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-62777af3 .uagb-heading-text{font-size: 16px;}.wp-block-uagb-container.uagb-block-0d2ee900 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-0d2ee900 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-0d2ee900 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-0d2ee900 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-0d2ee900 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-0d2ee900{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-0d2ee900 > .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-0d2ee900{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 32px;padding-right: 32px;margin-top:  !important;margin-bottom:  !important;overflow: visible;order: initial;border-top-width: 0px;border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-left-radius: 0px;border-bottom-right-radius: 0px;border-style: solid;border-color: var(--ast-global-color-4);row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-728f8d35 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-728f8d35 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-728f8d35 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-728f8d35 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-728f8d35 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-728f8d35{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-728f8d35 > .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-728f8d35{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: 20px;column-gap: 20px;}.uagb-block-c911dcdc.wp-block-uagb-separator{text-align: center;}.uagb-block-c911dcdc.wp-block-uagb-separator--text .wp-block-uagb-separator-element .uagb-html-tag{font-style: normal;line-height: 1em;}.uagb-block-c911dcdc .uagb-separator-spacing-wrapper{margin-bottom: 16px;}.uagb-block-c911dcdc.wp-block-uagb-separator:not(.wp-block-uagb-separator--text):not(.wp-block-uagb-separator--icon) .wp-block-uagb-separator__inner{-webkit-mask-size: 5px 100%;border-top-width: 1px;width: 100%;border-top-color: rgba(202,224,232,0.18);border-top-style: solid;margin-top: 5px;margin-bottom: 5px;}.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-bcf68176.wp-block-uagb-buttons.uagb-buttons__outer-wrap .uagb-buttons__wrap {gap: 10px;}.uagb-block-bcf68176.uagb-buttons__outer-wrap .uagb-buttons__wrap {justify-content: left;align-items: center;}.wp-block-uagb-buttons .uagb-block-9b76d234 .uagb-button__wrapper  .uagb-buttons-repeater.wp-block-button__link{box-shadow: 0px 0px 0 #00000026;}.wp-block-uagb-buttons .uagb-block-9b76d234 .uagb-button__wrapper  .uagb-buttons-repeater.wp-block-button__link:hover{box-shadow: 0px 0px 0 #00000026;}.wp-block-uagb-buttons .uagb-block-9b76d234 .uagb-buttons-repeater.wp-block-button__link:hover{border-color: #333;}.wp-block-uagb-buttons .uagb-block-9b76d234 .uagb-buttons-repeater.wp-block-button__link:focus{border-color: #333;}.wp-block-uagb-buttons .uagb-block-9b76d234.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-9b76d234 .uagb-buttons-repeater .uagb-button__icon > svg{width: 15px;height: 15px;}.wp-block-uagb-buttons .uagb-block-9b76d234 .uagb-buttons-repeater .uagb-button__icon-position-after{margin-left: 8px;}.wp-block-uagb-buttons .uagb-block-9b76d234 .uagb-buttons-repeater .uagb-button__icon-position-before{margin-right: 8px;}.wp-block-uagb-buttons .uagb-block-9b76d234 .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-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-advanced-heading.uagb-block-afb5e89c.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-afb5e89c.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-afb5e89c.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-afb5e89c.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-afb5e89c.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-afb5e89c .uagb-heading-text{font-size: 15px;}.wp-block-uagb-advanced-heading.uagb-block-fe1bfd59.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-fe1bfd59.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-fe1bfd59.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-fe1bfd59.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-fe1bfd59.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-fe1bfd59 .uagb-heading-text{font-size: 15px;}.uagb-block-0e84a373.wp-block-uagb-image--layout-default figure img{box-shadow: 0px 0px 0 #00000070;}.uagb-block-0e84a373.wp-block-uagb-image .wp-block-uagb-image__figure figcaption{font-style: normal;align-self: center;}.uagb-block-0e84a373.wp-block-uagb-image--layout-overlay figure img{box-shadow: 0px 0px 0 #00000070;}.uagb-block-0e84a373.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__color-wrapper{opacity: 0.2;}.uagb-block-0e84a373.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__inner{left: 15px;right: 15px;top: 15px;bottom: 15px;}.uagb-block-0e84a373.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__inner .uagb-image-heading{font-style: normal;color: #fff;opacity: 1;}.uagb-block-0e84a373.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__inner .uagb-image-heading a{color: #fff;}.uagb-block-0e84a373.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__inner .uagb-image-caption{opacity: 0;}.uagb-block-0e84a373.wp-block-uagb-image--layout-overlay .wp-block-uagb-image__figure:hover .wp-block-uagb-image--layout-overlay__color-wrapper{opacity: 1;}.uagb-block-0e84a373.wp-block-uagb-image .wp-block-uagb-image--layout-overlay__inner .uagb-image-separator{width: 30%;border-top-width: 2px;border-top-color: #fff;opacity: 0;}.uagb-block-0e84a373.wp-block-uagb-image .wp-block-uagb-image__figure img{object-fit: contain;width: px;height: 70px;}.uagb-block-0e84a373.wp-block-uagb-image .wp-block-uagb-image__figure:hover .wp-block-uagb-image--layout-overlay__inner .uagb-image-caption{opacity: 1;}.uagb-block-0e84a373.wp-block-uagb-image .wp-block-uagb-image__figure:hover .wp-block-uagb-image--layout-overlay__inner .uagb-image-separator{opacity: 1;}.uagb-block-0e84a373.wp-block-uagb-image--layout-default figure:hover img{box-shadow: 0px 0px 0 #00000070;}.uagb-block-0e84a373.wp-block-uagb-image--layout-overlay figure:hover img{box-shadow: 0px 0px 0 #00000070;}.wp-block-uagb-container.uagb-block-62860ec6 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-62860ec6 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-62860ec6 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-62860ec6 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-62860ec6 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-62860ec6{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-62860ec6 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-62860ec6.uagb-layout-grid{row-gap: 0px;column-gap: 12px;grid-template-columns: auto  auto ;grid-template-rows: minmax( 1px, 1fr) ;align-items: stretch;justify-items: stretch;align-content: stretch;justify-content: stretch;}.wp-block-uagb-container.uagb-block-62860ec6{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;}.wp-block-uagb-container.uagb-block-62860ec6.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-62860ec6.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;}.uagb-block-e695dee1.wp-block-uagb-image{margin-top: 6px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;text-align: left;justify-content: flex-start;align-self: flex-start;}.uagb-block-e695dee1 .wp-block-uagb-image__figure{align-items: flex-start;}.uagb-block-e695dee1.wp-block-uagb-image--layout-default figure img{box-shadow: 0px 0px 0 #00000070;}.uagb-block-e695dee1.wp-block-uagb-image .wp-block-uagb-image__figure figcaption{font-style: normal;align-self: center;}.uagb-block-e695dee1.wp-block-uagb-image--layout-overlay figure img{box-shadow: 0px 0px 0 #00000070;}.uagb-block-e695dee1.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__color-wrapper{opacity: 0.2;}.uagb-block-e695dee1.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__inner{left: 15px;right: 15px;top: 15px;bottom: 15px;}.uagb-block-e695dee1.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__inner .uagb-image-heading{font-style: normal;color: #fff;opacity: 1;}.uagb-block-e695dee1.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__inner .uagb-image-heading a{color: #fff;}.uagb-block-e695dee1.wp-block-uagb-image--layout-overlay .wp-block-uagb-image--layout-overlay__inner .uagb-image-caption{opacity: 0;}.uagb-block-e695dee1.wp-block-uagb-image--layout-overlay .wp-block-uagb-image__figure:hover .wp-block-uagb-image--layout-overlay__color-wrapper{opacity: 1;}.uagb-block-e695dee1.wp-block-uagb-image .wp-block-uagb-image--layout-overlay__inner .uagb-image-separator{width: 30%;border-top-width: 2px;border-top-color: #fff;opacity: 0;}.uagb-block-e695dee1.wp-block-uagb-image .wp-block-uagb-image__figure img{object-fit: contain;width: 18px;height: 18px;}.uagb-block-e695dee1.wp-block-uagb-image .wp-block-uagb-image__figure:hover .wp-block-uagb-image--layout-overlay__inner .uagb-image-caption{opacity: 1;}.uagb-block-e695dee1.wp-block-uagb-image .wp-block-uagb-image__figure:hover .wp-block-uagb-image--layout-overlay__inner .uagb-image-separator{opacity: 1;}.uagb-block-e695dee1.wp-block-uagb-image--layout-default figure:hover img{box-shadow: 0px 0px 0 #00000070;}.uagb-block-e695dee1.wp-block-uagb-image--layout-overlay figure:hover img{box-shadow: 0px 0px 0 #00000070;}.wp-block-uagb-advanced-heading.uagb-block-4a396755.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-4a396755.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-4a396755.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-4a396755.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-4a396755 .uagb-heading-text{font-size: 14px;}.uagb-block-65c7e5f4.wp-block-uagb-buttons.uagb-buttons__outer-wrap .uagb-buttons__wrap {gap: 10px;}.uagb-block-65c7e5f4.uagb-buttons__outer-wrap .uagb-buttons__wrap{width: 100%;align-items: center;}.uagb-block-65c7e5f4.uagb-buttons__outer-wrap .uagb-buttons__wrap .wp-block-button {width: 100%;}.wp-block-uagb-buttons .uagb-block-6408a1c5 .uagb-button__wrapper .uagb-buttons-repeater{padding-top: 12px;padding-bottom: 12px;padding-left: 24px;padding-right: 24px;}.wp-block-uagb-buttons .uagb-block-6408a1c5 .uagb-button__wrapper  .uagb-buttons-repeater.wp-block-button__link{box-shadow: 0px 0px 0 #00000026;}.wp-block-uagb-buttons .uagb-block-6408a1c5 .uagb-button__wrapper  .uagb-buttons-repeater.wp-block-button__link:hover{box-shadow: 0px 0px 0 #00000026;}.wp-block-uagb-buttons .uagb-block-6408a1c5 .uagb-buttons-repeater.wp-block-button__link:hover{border-color: #333;}.wp-block-uagb-buttons .uagb-block-6408a1c5 .uagb-buttons-repeater.wp-block-button__link:focus{border-color: #333;}.wp-block-uagb-buttons .uagb-block-6408a1c5.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-6408a1c5 .uagb-buttons-repeater .uagb-button__icon > svg{width: 15px;height: 15px;}.wp-block-uagb-buttons .uagb-block-6408a1c5 .uagb-buttons-repeater .uagb-button__icon-position-after{margin-left: 8px;}.wp-block-uagb-buttons .uagb-block-6408a1c5 .uagb-buttons-repeater .uagb-button__icon-position-before{margin-right: 8px;}.wp-block-uagb-buttons .uagb-block-6408a1c5 .uagb-button__link{text-transform: normal;text-decoration: none;}@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-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-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;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-107dc1c1{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-107dc1c1 > .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-107dc1c1{padding-top: 32px;padding-bottom: 32px;padding-left: 32px;padding-right: 32px;margin-top:  !important;margin-bottom:  !important;order: initial;border-style: solid;border-color: #d4b4fd;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-30525fed{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-30525fed > .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-30525fed{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;background-clip: padding-box;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-5c2e3e70{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-5c2e3e70 > .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-5c2e3e70{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;background-image: url(https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/03\/Yes.png);background-clip: padding-box;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-764d65b8{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-764d65b8 > .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-764d65b8{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-74b679ef{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-74b679ef > .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-74b679ef{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-36736043{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-36736043 > .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-36736043{padding-top: 12px;padding-bottom: 16px;padding-left: 32px;padding-right: 32px;margin-top:  !important;margin-bottom:  !important;order: initial;border-style: solid;border-color: var(--ast-global-color-4);}.wp-block-uagb-container.uagb-is-root-container .uagb-block-33b94f98{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-33b94f98 > .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-33b94f98{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;background-clip: padding-box;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-c418e740{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-c418e740 > .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-c418e740{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;background-image: url(https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/03\/No-1.png);background-clip: padding-box;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-8811a44a{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-8811a44a > .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-8811a44a{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-effed741{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-effed741 > .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-effed741{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-784dbcb6{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-784dbcb6 > .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-784dbcb6{padding-top: 40px;padding-bottom: 40px;padding-left: 40px;padding-right: 40px;margin-top: 64px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: none;background-color: rgba(205,189,226,0.1);;}.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;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-d0675b25{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-d0675b25 > .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-d0675b25{padding-top: 40px;padding-bottom: 40px;padding-left: 40px;padding-right: 40px;margin-top: 64px !important;margin-bottom: 32px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.3);}.wp-block-uagb-container.uagb-is-root-container .uagb-block-149b981b{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-149b981b > .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-149b981b{padding-top: 40px;padding-bottom: 40px;padding-left: 40px;padding-right: 40px;margin-top: 32px !important;margin-bottom: 64px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.3);}.uagb-block-1ea02519.wp-block-uagb-separator{text-align: center;}.uagb-block-1ea02519.wp-block-uagb-separator--text .wp-block-uagb-separator-element .uagb-html-tag{font-style: normal;margin-bottom: initial;line-height: 1em;}.uagb-block-1ea02519.wp-block-uagb-separator:not(.wp-block-uagb-separator--text):not(.wp-block-uagb-separator--icon) .wp-block-uagb-separator__inner{-webkit-mask-size: 5px 100%;width: 100%;border-top-color: rgba(202,224,232,0.18);border-top-style: solid;margin-top: 5px;margin-bottom: 5px;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-466290a3{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-466290a3 > .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-466290a3{padding-top: 12px;padding-bottom: 16px;padding-left: 32px;padding-right: 32px;margin-top:  !important;margin-bottom:  !important;order: initial;border-style: solid;border-color: var(--ast-global-color-4);}.wp-block-uagb-container.uagb-is-root-container .uagb-block-5e545da2{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-5e545da2 > .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-5e545da2{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;}.uagb-block-1788b674.wp-block-uagb-separator{text-align: center;}.uagb-block-1788b674.wp-block-uagb-separator--text .wp-block-uagb-separator-element .uagb-html-tag{font-style: normal;margin-bottom: initial;line-height: 1em;}.uagb-block-1788b674.wp-block-uagb-separator:not(.wp-block-uagb-separator--text):not(.wp-block-uagb-separator--icon) .wp-block-uagb-separator__inner{-webkit-mask-size: 5px 100%;width: 100%;border-top-color: rgba(202,224,232,0.18);border-top-style: solid;margin-top: 5px;margin-bottom: 5px;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-0d2ee900{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-0d2ee900 > .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-0d2ee900{padding-top: 0px;padding-bottom: 0px;padding-left: 32px;padding-right: 32px;margin-top:  !important;margin-bottom:  !important;order: initial;border-style: solid;border-color: var(--ast-global-color-4);}.wp-block-uagb-container.uagb-is-root-container .uagb-block-728f8d35{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-728f8d35 > .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-728f8d35{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;}.uagb-block-c911dcdc.wp-block-uagb-separator{text-align: center;}.uagb-block-c911dcdc.wp-block-uagb-separator--text .wp-block-uagb-separator-element .uagb-html-tag{font-style: normal;margin-bottom: initial;line-height: 1em;}.uagb-block-c911dcdc.wp-block-uagb-separator:not(.wp-block-uagb-separator--text):not(.wp-block-uagb-separator--icon) .wp-block-uagb-separator__inner{-webkit-mask-size: 5px 100%;width: 100%;border-top-color: rgba(202,224,232,0.18);border-top-style: solid;margin-top: 5px;margin-bottom: 5px;}.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-bcf68176.uagb-buttons__outer-wrap .uagb-buttons__wrap {justify-content: left;align-items: center;}.uagb-block-bcf68176.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);}.uagb-block-0e84a373.wp-block-uagb-image .wp-block-uagb-image__figure img{width: px;height: auto;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-62860ec6{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-62860ec6 > .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-62860ec6.uagb-layout-grid{grid-template-columns: auto  minmax( 1px, 1fr) ;grid-template-rows: minmax( 1px, 1fr) ;align-items: stretch;justify-items: start;align-content: stretch;justify-content: stretch;}.wp-block-uagb-container.uagb-block-62860ec6{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;}.uagb-block-e695dee1.wp-block-uagb-image .wp-block-uagb-image__figure img{width: 18px;height: auto;}.uagb-block-65c7e5f4.uagb-buttons__outer-wrap .uagb-buttons__wrap {justify-content: center;align-items: center;}.uagb-block-65c7e5f4.uagb-buttons__outer-wrap .uagb-buttons__wrap .wp-block-button{width: auto;}}@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-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-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;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-107dc1c1{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-107dc1c1 > .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-107dc1c1{padding-top: 32px;padding-bottom: 32px;padding-left: 32px;padding-right: 32px;margin-top:  !important;margin-bottom:  !important;order: initial;border-style: solid;border-color: #d4b4fd;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-30525fed{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-30525fed > .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-30525fed{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;background-clip: padding-box;flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-5c2e3e70{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-5c2e3e70 > .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-5c2e3e70{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;background-image: url(https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/03\/Yes.png);background-clip: padding-box;flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-764d65b8{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-764d65b8 > .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-764d65b8{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-74b679ef{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-74b679ef > .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-74b679ef{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-36736043{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-36736043 > .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-36736043{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;border-style: solid;border-color: var(--ast-global-color-4);}.wp-block-uagb-container.uagb-is-root-container .uagb-block-33b94f98{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-33b94f98 > .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-33b94f98{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;background-clip: padding-box;flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-c418e740{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-c418e740 > .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-c418e740{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;background-image: url(https:\/\/ptc.wpml.org\/wp-content\/uploads\/2025\/03\/No-1.png);background-clip: padding-box;flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-8811a44a{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-8811a44a > .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-8811a44a{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-advanced-heading.uagb-block-5eefa1c6.wp-block-uagb-advanced-heading {text-align: center;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-effed741{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-effed741 > .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-effed741{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-784dbcb6{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-784dbcb6 > .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-784dbcb6{padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 40px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: none;background-color: rgba(205,189,226,0.1);;}.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%;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-d0675b25{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-d0675b25 > .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-d0675b25{padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 40px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.3);}.wp-block-uagb-container.uagb-is-root-container .uagb-block-149b981b{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-149b981b > .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-149b981b{padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 40px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.3);}.uagb-block-1ea02519.wp-block-uagb-separator{text-align: center;}.uagb-block-1ea02519.wp-block-uagb-separator--text .wp-block-uagb-separator-element .uagb-html-tag{font-style: normal;margin-bottom: initial;line-height: 1em;}.uagb-block-1ea02519.wp-block-uagb-separator:not(.wp-block-uagb-separator--text):not(.wp-block-uagb-separator--icon) .wp-block-uagb-separator__inner{-webkit-mask-size: 5px 100%;width: 100%;border-top-color: rgba(202,224,232,0.18);border-top-style: solid;margin-top: 5px;margin-bottom: 5px;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-466290a3{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-466290a3 > .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-466290a3{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;border-style: solid;border-color: var(--ast-global-color-4);}.wp-block-uagb-container.uagb-is-root-container .uagb-block-5e545da2{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-5e545da2 > .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-5e545da2{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;flex-wrap: wrap;}.uagb-block-1788b674.wp-block-uagb-separator{text-align: center;}.uagb-block-1788b674.wp-block-uagb-separator--text .wp-block-uagb-separator-element .uagb-html-tag{font-style: normal;margin-bottom: initial;line-height: 1em;}.uagb-block-1788b674.wp-block-uagb-separator:not(.wp-block-uagb-separator--text):not(.wp-block-uagb-separator--icon) .wp-block-uagb-separator__inner{-webkit-mask-size: 5px 100%;width: 100%;border-top-color: rgba(202,224,232,0.18);border-top-style: solid;margin-top: 5px;margin-bottom: 5px;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-0d2ee900{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-0d2ee900 > .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-0d2ee900{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;border-style: solid;border-color: var(--ast-global-color-4);}.wp-block-uagb-container.uagb-is-root-container .uagb-block-728f8d35{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-728f8d35 > .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-728f8d35{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;flex-wrap: wrap;}.uagb-block-c911dcdc.wp-block-uagb-separator{text-align: center;}.uagb-block-c911dcdc.wp-block-uagb-separator--text .wp-block-uagb-separator-element .uagb-html-tag{font-style: normal;margin-bottom: initial;line-height: 1em;}.uagb-block-c911dcdc.wp-block-uagb-separator:not(.wp-block-uagb-separator--text):not(.wp-block-uagb-separator--icon) .wp-block-uagb-separator__inner{-webkit-mask-size: 5px 100%;width: 100%;border-top-color: rgba(202,224,232,0.18);border-top-style: solid;margin-top: 5px;margin-bottom: 5px;}.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-bcf68176.uagb-buttons__outer-wrap .uagb-buttons__wrap{width: 100%;}.uagb-block-bcf68176.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;}.uagb-block-0e84a373.wp-block-uagb-image .wp-block-uagb-image__figure img{width: px;height: 64px;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-62860ec6{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-62860ec6 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-62860ec6.uagb-layout-grid{row-gap: 20px;grid-template-columns: auto  minmax( 1px, 1fr) ;grid-template-rows: minmax( 1px, 1fr) ;align-items: stretch;justify-items: stretch;align-content: stretch;justify-content: stretch;}.wp-block-uagb-container.uagb-block-62860ec6{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;row-gap: 20px;order: initial;}.uagb-block-e695dee1.wp-block-uagb-image .wp-block-uagb-image__figure img{width: 18px;height: auto;}.uagb-block-65c7e5f4.uagb-buttons__outer-wrap .uagb-buttons__wrap{width: 100%;}.uagb-block-65c7e5f4.uagb-buttons__outer-wrap .uagb-buttons__wrap .wp-block-button {width: 100%;}}\";s:2:\"js\";s:359:\"document.addEventListener(\"DOMContentLoaded\", function(){ window.addEventListener( 'load', function() {\n\tUAGBButtonChild.init( '.uagb-block-5ea4a834' );\n});\nwindow.addEventListener( 'load', function() {\n\tUAGBButtonChild.init( '.uagb-block-9b76d234' );\n});\nwindow.addEventListener( 'load', function() {\n\tUAGBButtonChild.init( '.uagb-block-6408a1c5' );\n});\n });\";s:18:\"current_block_list\";a:20:{i:0;s:14:\"uagb\/container\";i:2;s:14:\"core\/paragraph\";i:4;s:11:\"core\/spacer\";i:5;s:12:\"core\/heading\";i:6;s:27:\"kevinbatdorf\/code-block-pro\";i:7;s:9:\"core\/list\";i:8;s:14:\"core\/list-item\";i:10;s:21:\"uagb\/advanced-heading\";i:11;s:12:\"uagb\/buttons\";i:12;s:18:\"uagb\/buttons-child\";i:13;s:12:\"core\/details\";i:14;s:14:\"uagb\/separator\";i:15;s:14:\"core\/separator\";i:16;s:10:\"uagb\/image\";i:17;s:11:\"core\/search\";i:18;s:10:\"core\/group\";i:19;s:17:\"core\/latest-posts\";i:20;s:20:\"core\/latest-comments\";i:21;s:13:\"core\/archives\";i:22;s:15:\"core\/categories\";}s:8:\"uag_flag\";b:1;s:11:\"uag_version\";i:1776439715;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":"Julia Kovaleva","author_link":"https:\/\/ptc.wpml.org\/fr\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"Configurez l&#8217;i18n et la localisation Rails pour votre application. Organisez les fichiers de traduction, basculez entre les langues et automatisez les traductions avec l&#8217;IA. Pour montrer comment fonctionne l&#8217;internationalisation Rails en pratique, nous avons cr\u00e9\u00e9 une petite application de d\u00e9monstration Ruby on Rails. L&#8217;application affiche l&#8217;heure actuelle du serveur avec un bouton d&#8217;actualisation et comprend&hellip;","_links":{"self":[{"href":"https:\/\/ptc.wpml.org\/fr\/wp-json\/wp\/v2\/documentation\/14284","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=14284"}],"wp:term":[{"taxonomy":"resources","embeddable":true,"href":"https:\/\/ptc.wpml.org\/fr\/wp-json\/wp\/v2\/resources?post=14284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}