Module i18n, dictionnaire, SEO & newsletter
Langues
4 langues, definies dans src/Web/uSync/v17/Languages/ : fr (defaut), de, it, en. Les document types de page sont Culture-variants. Le backoffice est en fr-FR (DefaultUILanguage).
- Le front commute la langue via
scripts/modules/switchLanguages.js. - Les inscriptions JEMA acceptent
fr/de/it;ensert de langue de repli pour les messages d'erreur.
Dictionnaire
- ~188 cles dans
src/Web/uSync/v17/Dictionary/, nommees enpoint.notation(ex.Forms.Generic.Email,Forms.Jema.Date,CraftsmanPage.RegistrationJema.Error.TimeSlotFull,cookies.accept). - Consommation cote serveur :
_umbracoHelper.GetDictionaryValue(key, culture)(CultureInfo) ouIDictionaryItemService.TranslateAsync(key, cultureCode). - Extensions utilitaires :
Extensions/DictionaryItemServiceExtensions.cs,Extensions/LanguageServiceExtensions.cs. - Config :
Umbraco:CMS:Dictionary:EnableValueSearch = true; leDictionaryHandleruSync est enCreateOnly(ne reecrase pas les valeurs existantes a l'import). - Tout texte d'interface passe par le dictionnaire, jamais en dur.
SEO (Helpers/SeoHelpers.cs)
BuildMetaTitle(name, brandSuffix)->Nom – Suffixe(demi-cadratin), ou l'un des deux si l'autre est vide.BuildMetaDescription(rawHtml, maxLength = 150)-> fallback : strip des balises HTML, decode des entites, normalisation des espaces, troncature au dernier mot, ajout de…si tronque.- Helpers complementaires :
SeoHelpers,Helpers/ViewHelper.cs,Helpers/ImageHelper.cs,Helpers/CriticalCssHelper.cs. Travail lie aux branchesfeature/seo-fallback-artisan-metier(fallback SEO sur les fiches artisan/metier). - Sitemap et robots :
Controllers/SitemapController.cs,Controllers/RobotsController.cs.
Newsletter (Controllers/NewsletterController.cs)
- Surface controller, action
Subscribe(email, culture)([HttpPost],[ValidateAntiForgeryToken]). - Selectionne l'
ID de listeselon la culture (ListIdFR/DE/IT/ENdeNewsletterOptions). - Poste vers l'API Infomaniak (
api/Newsletter/Infomaniak/DoubleOptInByClient) via leHttpClientnommeNewsletterOptIn(base address =NewsletterOptions.ApiUrl, configure dansProgram.cs). - Front :
scripts/modules/newsletterForm.js. - Config (
appsettings.jsonsectionNewsletter) :ApiUrl,IsDoubleOptIn,ListId*,Domain,Client,Provider(infomaniak). Valeurs renseignees par environnement.
404 multilingue (ContentFinders/NotFoundContentFinder.cs)
IContentLastChanceFinder enregistre dans SiteComposer. Resout la racine de site correspondant au domaine de la requete (via IDomainService), puis cherche un enfant notFoundPage. Permet une page 404 par site/culture.
Contributors
No contributors
Changelog
No recent changes

