CINXE.COM

Voir la source de Module:Unité — Wikipédia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-disabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-not-available" lang="fr" dir="ltr"> <head> <meta charset="UTF-8"> <title>Voir la source de Module:Unité — Wikipédia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-disabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-not-available";var cookie=document.cookie.match(/(?:^|; )frwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":true,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat": "dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"a5f36162-b230-4428-87c5-89853732bb50","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"Module:Unité","wgTitle":"Unité","wgCurRevisionId":212714697,"wgRevisionId":0,"wgArticleId":9031461,"wgIsArticle":false,"wgIsRedirect":false,"wgAction":"edit","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"Scribunto","wgRelevantPageName":"Module:Unité","wgRelevantArticleId":9031461,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["sysop"],"wgRestrictionMove":["sysop"],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en", "pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgCodeEditorCurrentLanguage":"lua","wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.codeEditor.styles":"ready" ,"skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.charinsert.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.codeEditor","ext.scribunto.edit","mediawiki.action.edit.collapsibleFooter","site","mediawiki.page.ready","skins.vector.js","ext.centralNotice.geoIP","ext.charinsert","ext.gadget.ArchiveLinks","ext.gadget.MonobookToolbarStandard","ext.gadget.Wdsearch","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.checkUser.clientHints","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=fr&amp;modules=ext.charinsert.styles%7Cext.codeEditor.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=fr&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=fr&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.5"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="noindex,nofollow,max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Voir la source de Module:Unité — Wikipédia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//fr.m.wikipedia.org/wiki/Module:Unit%C3%A9"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipédia (fr)"> <link rel="EditURI" type="application/rsd+xml" href="//fr.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://fr.wikipedia.org/wiki/Module:Unit%C3%A9"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr"> <link rel="alternate" type="application/atom+xml" title="Flux Atom de Wikipédia" href="/w/index.php?title=Sp%C3%A9cial:Modifications_r%C3%A9centes&amp;feed=atom"> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="codeeditor-loading skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-828 ns-subject page-Module_Unité rootpage-Module_Unité skin-vector-2022 action-edit"><a class="mw-jump-link" href="#bodyContent">Aller au contenu</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Menu principal" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Menu principal</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Menu principal</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">masquer</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Accueil_principal" title="Accueil général [z]" accesskey="z"><span>Accueil</span></a></li><li id="n-thema" class="mw-list-item"><a href="/wiki/Portail:Accueil"><span>Portails thématiques</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Page_au_hasard" title="Affiche un article au hasard [x]" accesskey="x"><span>Article au hasard</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Contact"><span>Contact</span></a></li> </ul> </div> </div> <div id="p-Contribuer" class="vector-menu mw-portlet mw-portlet-Contribuer" > <div class="vector-menu-heading"> Contribuer </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-aboutwp" class="mw-list-item"><a href="/wiki/Aide:D%C3%A9buter"><span>Débuter sur Wikipédia</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Aide:Accueil" title="Accès à l’aide"><span>Aide</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Accueil_de_la_communaut%C3%A9" title="À propos du projet, ce que vous pouvez faire, où trouver les informations"><span>Communauté</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Modifications_r%C3%A9centes" title="Liste des modifications récentes sur le wiki [r]" accesskey="r"><span>Modifications récentes</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Wikip%C3%A9dia:Accueil_principal" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipédia" src="/static/images/mobile/copyright/wikipedia-wordmark-fr.svg" style="width: 7.4375em; height: 1.125em;"> <img class="mw-logo-tagline" alt="l&#039;encyclopédie libre" src="/static/images/mobile/copyright/wikipedia-tagline-fr.svg" width="120" height="13" style="width: 7.5em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Sp%C3%A9cial:Recherche" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Rechercher sur Wikipédia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Rechercher</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Rechercher sur Wikipédia" aria-label="Rechercher sur Wikipédia" autocapitalize="sentences" title="Rechercher sur Wikipédia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Spécial:Recherche"> </div> <button class="cdx-button cdx-search-input__end-button">Rechercher</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Outils personnels"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Apparence"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Modifier l&#039;apparence de la taille, de la largeur et de la couleur de la police de la page" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Apparence" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Apparence</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_fr.wikipedia.org&amp;uselang=fr" class=""><span>Faire un don</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&amp;returnto=Module%3AUnit%C3%A9&amp;returntoquery=action%3Dedit" title="Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire." class=""><span>Créer un compte</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Sp%C3%A9cial:Connexion&amp;returnto=Module%3AUnit%C3%A9&amp;returntoquery=action%3Dedit" title="Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]" accesskey="o" class=""><span>Se connecter</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Plus d’options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Outils personnels" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Outils personnels</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Menu utilisateur" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_fr.wikipedia.org&amp;uselang=fr"><span>Faire un don</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&amp;returnto=Module%3AUnit%C3%A9&amp;returntoquery=action%3Dedit" title="Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire."><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Créer un compte</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Connexion&amp;returnto=Module%3AUnit%C3%A9&amp;returntoquery=action%3Dedit" title="Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Se connecter</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages pour les contributeurs déconnectés <a href="/wiki/Aide:Premiers_pas" aria-label="En savoir plus sur la contribution"><span>en savoir plus</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Mes_contributions" title="Une liste des modifications effectuées depuis cette adresse IP [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Mes_discussions" title="La page de discussion pour les contributions depuis cette adresse IP [n]" accesskey="n"><span>Discussion</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <h1 id="firstHeading" class="firstHeading mw-first-heading">Voir la source de Module:Unité</h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Cet article n’existe que dans cette langue. Ajouter l’article pour d’autres langues." > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-0" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">Ajouter des langues</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> <div class="after-portlet after-portlet-lang"><span class="uls-after-portlet-link"></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Espaces de noms"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-module" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Module:Unit%C3%A9" title="Afficher la page du module [c]" accesskey="c"><span>Module</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Discussion_module:Unit%C3%A9" rel="discussion" title="Discussion au sujet de cette page de contenu [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Modifier la variante de langue" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Affichages"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="vector-tab-noicon mw-list-item"><a href="/wiki/Module:Unit%C3%A9"><span>Lire</span></a></li><li id="ca-viewsource" class="selected vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:Unit%C3%A9&amp;action=edit" title="Cette page est protégée.&#10;Vous pouvez toutefois en visualiser la source. [e]" accesskey="e"><span>Voir le texte source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:Unit%C3%A9&amp;action=history" title="Historique des versions de cette page [h]" accesskey="h"><span>Voir l’historique</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Outils de la page"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Outils" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Outils</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Outils</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">masquer</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Plus d’options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="vector-more-collapsible-item mw-list-item"><a href="/wiki/Module:Unit%C3%A9"><span>Lire</span></a></li><li id="ca-more-viewsource" class="selected vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:Unit%C3%A9&amp;action=edit"><span>Voir le texte source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:Unit%C3%A9&amp;action=history"><span>Voir l’historique</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Général </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Pages_li%C3%A9es/Module:Unit%C3%A9" title="Liste des pages liées qui pointent sur celle-ci [j]" accesskey="j"><span>Pages liées</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Suivi_des_liens/Module:Unit%C3%A9" rel="nofollow" title="Liste des modifications récentes des pages appelées par celle-ci [k]" accesskey="k"><span>Suivi des pages liées</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Aide:Importer_un_fichier" title="Téléverser des fichiers [u]" accesskey="u"><span>Téléverser un fichier</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Pages_sp%C3%A9ciales" title="Liste de toutes les pages spéciales [q]" accesskey="q"><span>Pages spéciales</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Module:Unit%C3%A9&amp;action=info" title="Davantage d’informations sur cette page"><span>Informations sur la page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:UrlShortener&amp;url=https%3A%2F%2Ffr.wikipedia.org%2Fw%2Findex.php%3Ftitle%3DModule%3AUnit%25C3%25A9%26action%3Dedit"><span>Obtenir l'URL raccourcie</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:QrCode&amp;url=https%3A%2F%2Ffr.wikipedia.org%2Fw%2Findex.php%3Ftitle%3DModule%3AUnit%25C3%25A9%26action%3Dedit"><span>Télécharger le code QR</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> Dans d’autres projets </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q55807033" title="Lien vers l’élément dans le dépôt de données connecté [g]" accesskey="g"><span>Élément Wikidata</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Outils de la page"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Apparence"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Apparence</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">masquer</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> </div> <div id="contentSub"><div id="mw-content-subtitle">← <a href="/wiki/Module:Unit%C3%A9" title="Module:Unité">Module:Unité</a></div></div> <div id="mw-content-text" class="mw-body-content"><p>Vous n’avez pas la permission de modifier cette page, pour les raisons suivantes&#160;: </p> <ul class="permissions-errors"><li class="mw-permissionerror-protectedpagetext"><table cellspacing="0" cellpadding="2" class="mw-alerte plainlinks protect-niv-editprotected"> <tbody><tr> <td rowspan="2" align="center" width="64px"><span typeof="mw:File"><a href="/wiki/Wikip%C3%A9dia:Protection" title="Page protégée"><img alt="Page protégée" src="//upload.wikimedia.org/wikipedia/commons/thumb/9/97/Full-protection-shackle-frwiki.svg/42px-Full-protection-shackle-frwiki.svg.png" decoding="async" width="42" height="60" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/9/97/Full-protection-shackle-frwiki.svg/63px-Full-protection-shackle-frwiki.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/97/Full-protection-shackle-frwiki.svg/85px-Full-protection-shackle-frwiki.svg.png 2x" data-file-width="512" data-file-height="725" /></a></span></td> <td style="line-height:1.3em; padding-top:9px; vertical-align:top; font-size:100%;"><div style="font-size:120%; font-weight:bold; align:center; width:100%; text-align:center;"><a href="/wiki/Wikip%C3%A9dia:Protection" title="Wikipédia:Protection">Cette page est protégée</a>.</div><br />Cela veut dire que seuls les <a href="/wiki/Wikip%C3%A9dia:Administrateur" title="Wikipédia:Administrateur">administrateurs</a> peuvent la modifier.<br /><br />Cette page a été protégée pour la ou l'une des raison(s) suivante(s)&#160;: <ul><li>Ce module est très utilisé ou est présent sur la page d'accueil, il a été protégé pour éviter les abus.</li></ul> </td> </tr> <tr> <td style="text-align: center;"> <hr /> <p><small style="line-height:1.6em">Vous pouvez proposer une modification en <a href="/wiki/Discussion_module:Unit%C3%A9" title="Discussion module:Unité">page de discussion</a> ou <a class="external text" href="https://fr.wikipedia.org/w/index.php?title=Wikip%C3%A9dia:Demande_d%27intervention_sur_une_page_prot%C3%A9g%C3%A9e&amp;action=edit&amp;section=new&amp;preload=Modèle:Préchargement_pour_requête_d&#39;intervention_sur_une_page_protégée&amp;preloadtitle=%7B%7Ba%27%7CModule:Unit%C3%A9%7D%7D">à un administrateur</a>&#160;• Consulter le <a class="external text" href="https://fr.wikipedia.org/w/index.php?title=Sp%C3%A9cial:Log&amp;type=protect&amp;page=Module:Unit%C3%A9">journal des protections de cette page</a> pour les raisons et la durée de la protection.</small> </p> </td></tr></tbody></table></li><li class="mw-permissionerror-globalblocking-blockedtext-range"><b>Votre adresse IP fait partie d’une plage qui a été <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Global_blocks" class="extiw" title="m:Special:MyLanguage/Global blocks">bloquée sur tous les wikis de la Fondation Wikimédia</a>.</b> <p>Le blocage a été effectué par <a href="/wiki/Utilisateur:Jon_Kolbert" title="Utilisateur:Jon Kolbert">‪Jon Kolbert‬</a>. Le motif invoqué est <i><a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/NOP" class="extiw" title="m:Special:MyLanguage/NOP">Open proxy/Webhost</a>: See the <a href="https://meta.wikimedia.org/wiki/WM:OP/H" class="extiw" title="m:WM:OP/H">help page</a> if you are affected </i>. </p> <ul><li>Début du blocage : 27 août 2023 à 16:12</li> <li>Expiration du blocage : 27 août 2028 à 16:12</li></ul> <p>Votre adresse IP actuelle est 8.222.208.146. La plage bloquée est 8.222.128.0/17. </p><p>Veuillez inclure tous les détails ci-dessus dans toutes les demandes que vous effectuerez. Si vous pensez avoir été bloqué(e) par erreur, vous pouvez trouver plus d’informations et d’instructions dans la politique globale <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/No_open_proxies" class="extiw" title="m:Special:MyLanguage/No open proxies">Pas de serveurs mandataires ouverts</a>. </p> Sinon, pour discuter du blocage, veuillez <a href="https://meta.wikimedia.org/wiki/Steward_requests/Global" class="extiw" title="m:Steward requests/Global">publier une demande de révision sur Méta-Wiki</a>. Vous pouvez également envoyer un courriel à la file des <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Stewards" class="extiw" title="m:Special:MyLanguage/Stewards">coordinateurs</a> <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/VRT" class="extiw" title="m:Special:MyLanguage/VRT">VRT</a> à <kbd>stewards@wikimedia.org</kbd>, en incluant tous les détails ci-dessus.</li></ul><hr /> <p>Vous pouvez voir et copier le contenu de cette page. </p><textarea readonly="" accesskey="," id="wpTextbox1" cols="80" rows="25" style="" class="mw-editfont-monospace" lang="en" dir="ltr" name="wpTextbox1">-- luacheck: globals mw, no max line length local p = {} -- local Delink = require( 'Module:Delink' ) -- chargé uniquement si nécessaire -- Chargement de la base de données des noms d'unités avec gestion d'erreur. local moduleData = 'Module:Unité/Data' local dataSuccess, Data = pcall ( mw.loadData, moduleData ) if dataSuccess and type( Data ) == 'table' then dataSuccess = type( Data.unit ) == 'table' and type( Data.prefix ) == 'table' and type( Data.exposant ) == 'table' end local errorCat = '[[Catégorie:Page incorrectement traitée par le Module:Unité]]' local addErrorCat = false local supUnicode = { ['0'] = '⁰', ['1'] = '¹', ['2'] = '²', ['3'] = '³', ['4'] = '⁴', ['5'] = '⁵', ['6'] = '⁶', ['7'] = '⁷', ['8'] = '⁸', ['9'] = '⁹', ['+'] = '⁺', ['-'] = '⁻', ['='] = '⁼', ['('] = '⁽', [')'] = '⁾', ['n'] = 'ⁿ' } local subUnicode = { ['0'] = '₀', ['1'] = '₁', ['2'] = '₂', ['3'] = '₃', ['4'] = '₄', ['5'] = '₅', ['6'] = '₆', ['7'] = '₇', ['8'] = '₈', ['9'] = '₉', ['a'] = 'ₐ', ['e'] = 'ₑ', ['o'] = 'ₒ', ['x'] = 'ₓ', ['h'] = 'ₕ', ['k'] = 'ₖ', ['l'] = 'ₗ', ['m'] = 'ₘ', ['n'] = 'ₙ', ['p'] = 'ₚ', ['s'] = 'ₛ', ['t'] = 'ₜ', } local fractionUnicode = { ['½'] = '1/2', ['⅓'] = '1/3', ['⅕'] = '1/5', ['⅙'] = '1/6', ['⅛'] = '1/8', ['⅔'] = '2/3', ['⅖'] = '2/5', ['⅚'] = '5/6', ['⅜'] = '3/8', ['¾'] = '3/4', ['⅗'] = '3/5', ['⅝'] = '5/8', ['⅞'] = '7/8', ['⅘'] = '4/5', ['¼'] = '1/4', ['⅐'] = '1/7', ['⅑'] = '1/9', ['⅒'] = '1/10', ['↉'] = '0/3', } local nbsp = '\194\160' -- espace insécable local nnbsp = '\226\128\175' -- espace fine insécable local mwTrim = mw.text.trim --- Copie de Outils.trim acceptant les nombres. local function trim( texte ) if type( texte ) == 'string' then texte = mwTrim( texte ) if texte ~= '' then return texte end elseif type( texte ) == 'number' then return tostring( texte ) end end -- retire les chiffres des strip markers local function escapeStripMarkers( input ) return input:gsub( '(UNIQ%-%-%a+%-)(%x%x%x%x%x%x%x%x)(%-QINU)', function ( leading, hexdigits, trailing ) local escapeddigits = hexdigits:gsub( '%d', { ['0'] = 'g', ['1'] = 'h', ['2'] = 'i', ['3'] = 'j', ['4'] = 'k', ['5'] = 'l', ['6'] = 'm', ['7'] = 'n', ['8'] = 'o', ['9'] = 'p', } ) return leading .. escapeddigits .. trailing end ) end -- restaure les strip markers local function restoreStripMarkers( input ) return input:gsub( '(UNIQ%-%-%a+%-)(%a%a%a%a%a%a%a%a)(%-QINU)', function ( leading, escapeddigits, trailing ) local hexdigits = escapeddigits:gsub( '%a', { ['g'] = '0', ['h'] = '1', ['i'] = '2', ['j'] = '3', ['k'] = '4', ['l'] = '5', ['m'] = '6', ['n'] = '7', ['o'] = '8', ['p'] = '9', } ) return leading .. hexdigits .. trailing end ) end -- remplacement de certains caractères, pour simplifier les patterns function p.sanitizeNum( nombre ) if type( nombre ) == 'number' then return tostring( nombre ) elseif type( nombre ) == 'string' then if nombre:match( '^%-?[%d.,]+$' ) then return nombre end local result = nombre -- remplacement des signes moins par un tiret :gsub( '%−%f[%d]', '-' ) -- U+2212 :gsub( '&amp;minus;%f[%d]', '-' ) -- html &amp;minus; -- remplacement des espaces insécables par des espaces simples :gsub( nbsp, ' ' ) :gsub( '&amp;nbsp;', ' ' ) :gsub( '&amp;#160;', ' ' ) :gsub( nnbsp, ' ' ) :gsub( '&amp;#8239;', ' ' ) :gsub( '&amp;#x202F;', ' ' ) :gsub( '\226\128[\132-\138]', ' ' ) -- U+2004 à U+200A :gsub( '&amp;#32;', ' ' ) -- trim en dernier, après avoir normalisé les espaces return mwTrim( result ) else return '' end end --- -- parseNum transforme si possible une chaine formatée en une chaine interprétable par tonumber() -- retourne une chaine pour éviter les arrondis éventuels de lua. -- si "nombre" est une chaine non reconnue comme un nombre par la fonction, retourne "nombre". -- si "nombre" n'est pas un number ou une chaine retourne une chaine vide. function p.parseNombre( nombre ) local result if type( nombre ) == 'number' then return tostring( nombre ) else -- remplacement des signes moins ou demi-cadratin par un tiret result = p.sanitizeNum( nombre ) if result == '' then return '' end -- si nombre est un chiffre en exposant ou indice comme ², retourne ce chiffre for i = 0, 9 do local is = tostring(i) if result == supUnicode[ is ] or result == subUnicode[ is ] then return is end end if not result:match( '^%-?[%d., ]*%d$' ) and not result:match( '^%-?[%d., ]*%d ?e[+-]?%d+$' ) then return nombre end end -- suppression espaces result = result:gsub( ' ', '' ) -- gestion des points et des virgules if result:find( '.', nil, true ) or result:find( ',', nil, true ) then if result:match( '%d%.%d%d%d%.%d' ) then -- type 12.345.678 result = result:gsub( '%.', '' ):gsub( ',', '.' ) elseif result:match( '%d,%d%d%d,%d' ) -- type 1,234,567 ou 1.234,567,8 or result:match( '%d,%d%d%d%.%d' ) -- format anglo-saxon type 1,234.5 or result:match( '%d%.%d%d%d,%d' ) -- type 1.123,56 (utilisé en exemple pour séparer les décimales avec l'ancien modèle unité ou formatnum) then result = result:gsub( ',', '' ) else result = result:gsub( ',', '.' ) end end return result end --- -- _formatNum transforme un nombre ou une chaine représentant un nombre en chaine formatée suivant les conventions du français -- si le paramètre ne représente pas un nombre lua il est retourné sans modification -- Le paramètre peut être transmis sous forme de table pour ajouter des options : -- * round : arrondit à n chiffre après la virgule (peut être négatif) -- * decimals : nombre de décimales affichées (peut être négatif, dans ce cas équivalent à round) -- * noHtml : n'utilise pas de balise HTML pour afficher les puissances de 10 (pour pouvoir être utilisé en attribut title) function p.formatNum( num ) local params = {} if type( num ) == 'table' then params = num num = params[1] end if type( num ) == 'number' then num = tostring( num ) elseif type( num ) ~= 'string' or num == '' then return num end -- séparation exposant local n, exponent = num:match( '^([-%d.]+)[eE]([+-]?%d+)$' ) if exponent then num = n if params.noHtml then exponent = exponent:gsub('+?%f[%d]0', '' ) :gsub( '[%d-]', supUnicode ) else exponent = '&lt;sup>' .. exponent:gsub('^%+?(%-?)0?', { ['-'] = '−', [''] = '' } ) .. '&lt;/sup>' end if num == '1' then return '10' .. exponent end exponent = nbsp .. '×' .. nnbsp .. '10' .. exponent else exponent = '' end -- arrondi local decimals = tonumber( params.decimals ) local round = tonumber( params.round ) or decimals if round and tonumber( num ) then local mult = 10 ^ round num = tostring( math.floor( num * mult + 0.5 ) / mult ) end local moins, entier, deci = num:match( '^(%-?)(%d*)%.?(%d*)$' ) if not entier then return num end if moins == '-' then moins = '−' -- signe moins (U+2212) end if entier == '' then entier = '0' elseif entier:len() > 3 then local ini = math.fmod( entier:len() - 1, 3 ) + 1 entier = ( entier:sub( 1, ini ) or '' ) .. entier:sub( ini + 1 ):gsub( '(%d%d%d)', nbsp .. '%1' ) end if deci ~= '' or ( decimals and decimals > 0 ) then if decimals and decimals > #deci then deci = deci .. string.rep( '0', decimals - #deci ) end if #deci > 3 then deci = ',' .. deci:gsub( '(%d%d%d)', '%1' .. nbsp ):gsub( nbsp .. '$', '' ) else deci = ',' .. deci end end return moins .. entier .. deci .. exponent end --- -- formatNombre transforme un nombre formaté ou non en chaine formatée suivant les conventions du français. -- si la chaine n'est pas reconnue comme un nombre, elle n'est pas modifiée. function p.formatNombre( num, round, decimals ) return p.formatNum{ p.parseNombre( num ), round = round, decimals = decimals } end --- formatNombres transforme tous les nombres d'une chaine en nombre formaté suivant les conventions du français. function p.formatNombres( nombres, round, decimals ) if type( nombres ) == 'number' then return p.formatNum{ nombres, round = round, decimals = decimals } elseif type( nombres ) == 'string' then -- retire les chiffres des strip markers nombres = escapeStripMarkers( nombres ) -- formatage proprement dit nombres = p.sanitizeNum( nombres ) local formatN = function ( n ) return p.formatNombre( n, round, decimals ) end if nombres:match( '%d%-%d' ) then nombres = nombres:gsub( '%f[%d.,][%d., ]*%d', formatN ) else nombres = nombres :gsub( '%-?%f[%d.,][%d., ]*%d ?e[+-]?%d+', formatN ) :gsub( '%-?%f[%d.,][%d., ]*%d', formatN ) end -- restaure les strip markers nombres = restoreStripMarkers( nombres ) return nombres else return '' end end function p.parseUnit( texte ) local toParse = p.sanitizeNum( texte ) if toParse ~= '' then local result local specificArgs = { ['à'] = 'à', et = 'et', ou = 'ou', ['/'] = '/', [';'] = '/', ['//'] = '//', ['–'] = '–', ['—'] = '–', ['-'] = '–', -- demi cadratin, cadratin et tiret ['±'] = '±', ['+-'] = '±', ['+/-'] = '±', ['+'] = '+', ['−'] = '−', -- signe moins ['×'] = '×', x = '×', ['*'] = '×', ['××'] = '××', xx = '××', ['**'] = '××', } -- valeur numérique local cap0, capture = toParse:match( '^(([%d., ]+%f[^%d.,(])%s*)' ) local prefix if not cap0 then -- cas d'un nombre entre guillemets, gras, italique... cap0, capture = toParse:match( '^((["\']+[%d., ]+["\']+)%s*)' ) end if not cap0 then -- cas où le nombre est remplacé par un ou plusieurs points d'interrogation cap0, prefix = toParse:match( '^((%?+)%s*)' ) end if not cap0 then -- cas où un mot type "vers", "environ" précède le nombre (mot simple, sans accent pour ne pas complexifier pour des cas minoritaires) cap0, prefix, capture = toParse:match( '^(([%a ]+[.,]?[: ]* )([+-]? ?%f[%d.,][%d., ]*%d%f[%D])%s*)' ) end if not cap0 then -- cas où le nombre est précédé par un signe, un symbole ASCII, ou suivi d'une incertitude entre parenthèses cap0, prefix, capture = toParse:match( '^(([(&lt;>=~ ]*)([+-]? ?%f[%d.,][%d., ]*%d%(?[%d%.]*%)?)%s*)' ) end if not cap0 then -- cas où le nombre est précédé par un symbole ≤, ≥, ≈, ≃ et quelques autres cap0, prefix, capture = toParse:match( '^((\226[\136\137][\131\136\164\165\187\188] ?)([+-]?%f[%d.,][%d., ]*%d%f[%D])%s*)' ) end if not cap0 then -- cas où le nombre est précédé par un symbole ± (\194\177) cap0, prefix, capture = toParse:match( '^((±) ?(%f[%d.,][%d., ]*%d%f[%D])%s*)' ) end result = { capture or false, prefix = prefix } if cap0 then toParse = toParse:sub( cap0:len() + 1 ) -- point de suspensions (ex π = 3.14159...) cap0 = toParse:match( '^…%s*' ) if not cap0 then cap0 = toParse:match( '^%.%.%.%s*' ) end if cap0 then result[1] = result[1] .. '…' toParse = toParse:sub( cap0:len() + 1 ) end if toParse == '' then return result end end -- fraction capture = mw.ustring.sub( toParse, 1, 1 ) if fractionUnicode[ capture ] then result.fraction = fractionUnicode[ capture ] toParse = toParse:sub( capture:len() + 1 ):gsub( '^%s*', '' ) result[1] = result[1] or '' else cap0, capture = toParse:match( '^(([%d,]*/%f[%d][%d ]*%d)%s*)' ) if not cap0 then -- caractère de fraction ⁄ = \226\129\132 cap0, capture = toParse:match( '^((%d*⁄%d+)%s*)' ) if cap0 then capture = capture:gsub( '⁄', '/' ) end end if cap0 then if result[1] and capture:match( '^/' ) then local n = result[1]:match( ' %d+$' ) or result[1]:match( '^%d+$' ) or '' result[1] = result[1]:sub( 1, -1 - #n ) result.fraction = n:gsub( '^ ', '' ) .. capture else result.fraction = capture end toParse = toParse:sub( cap0:len() + 1 ) end end if toParse ~= '' and ( result[1] or result.fraction ) then -- lien avec un deuxième nombre local cap0, conj, num = toParse:match( '^(([etou+/;x*-]+) *(%-?%f[%d.,][%d., ]*%d%f[%D]%)?)%s*)' ) if not cap0 and toParse:byte() > 127 then cap0, conj, num = mw.ustring.match( toParse, '^(([à−×±—–]+) *(%-?%f[%d.,][%d., ]*%d%f[%D]%)?)%s*)' ) end if cap0 and specificArgs[ conj ] and not ( specificArgs[ conj ] == '×' and ( mw.ustring.match( toParse, '^[×x] ?10 ?[e%^]' ) or mw.ustring.match( toParse, '^[×x] ?10&lt;sup>(%-?%d+)&lt;/sup>' ) ) ) then result[ specificArgs[ conj ] ] = num toParse = toParse:sub( cap0:len() + 1 ) end if result['+'] or result['×'] or result['/'] then cap0, conj, num = mw.ustring.match( toParse, '^(([/;x*×−-]) *(%-?%f[%d.,][%d., ]*%d%f[%D])%s*)' ) if cap0 then if specificArgs[ conj ] == '×' then result['××'] = num elseif specificArgs[ conj ] == '/' then result['//'] = num else result['−'] = num end toParse = toParse:sub( cap0:len() + 1 ) end end end -- 10 exposant ( \195\151 = ×, signe multiplié) cap0, capture = toParse:match( '^([e%^](%-?%d+)%s*)' ) if not cap0 then cap0, capture = toParse:match( '^([x\195]\151? ?10[e%^](%-?%d+)%s*)' ) end if not cap0 then cap0, capture = toParse:match( '^([x\195]\151? ?10&lt;sup>(%-?%d+)&lt;/sup>%s*)' ) end if cap0 then result.e = capture toParse = toParse:sub( cap0:len() + 1 ) end if result[1] == '10' and not result.e and not result.fraction then cap0, capture = toParse:match( '^(&lt;sup>(%-?%d+)&lt;/sup>%s*)' ) if cap0 then result[1] = false result.e = capture toParse = toParse:sub( cap0:len() + 1 ) end end if toParse == '' then return result end -- unités local texteUnit = toParse toParse = toParse:gsub( '^([^%[&lt;]-)&lt;sup>(%d)&lt;/sup>', '%1%2' ) if Data.unit[ toParse ] or toParse:match( '%b&lt;>' ) or toParse:match( 'UNIQ%-%-%a+%-%x%x%x%x%x%x%x%x%-QINU' ) or mw.ustring.match( toParse, '^%a+$' ) then result[ #result + 1 ] = toParse toParse = '' elseif toParse ~= '' then local unit local exp toParse = toParse:gsub( '²', '2' ):gsub( '³', '3' ) repeat -- unité contenant un lien cap0, unit, exp = toParse:match( '^((/? ?[^%s%d/%[%]]*%b[][^%s%d/]*) ?(%-?%d*)%s*)' ) if not cap0 then -- unité ne contenant pas de lien cap0, unit, exp = toParse:match( '^((/? ?[^%s%d/]+) ?(%-?%d*)%s*)' ) end if not cap0 then -- l/100 km cap0, unit, exp = toParse:match( '^((/100 ?[^%s%d/]+) ?(%-?%d*)%s*)' ) end if cap0 then if unit:match( '%-$' ) and exp ~= '' then -- rustine pour quand le "-" se retrouve dans la capture "unit" au lieu de la capture "exp" unit = unit:gsub( '%-$', '' ) exp = '-' .. exp elseif exp == '-' then -- rustine pour quand un "-" a été capturé dans "exp" mais sans qu'il y ait de chiffres après unit = cap0 exp = '' end if Data.unit[ unit ] or mw.ustring.match( unit, '[%a€£$¥«»]' ) then result[ #result + 1 ] = unit result[ #result + 1 ] = exp toParse = toParse:sub( cap0:len() + 1 ) else break end end until toParse == '' or not cap0 end if toParse == '' then if #result > 3 then local estSimpleTexte = true for r = 2, #result, 2 do if Data.unit[ result[ r ] ] or result[ r ]:sub( 1, 1 ) == '/' or Data.prefix[ result[ r ]:sub( 1, 1 ) ] and Data.unit[ result[ r ]:sub( 2 ) ] or Data.prefix[ result[ r ]:sub( 1, 2 ) ] and Data.unit[ result[ r ]:sub( 3 ) ] or result[ r + 1 ] and result[ r + 1 ] ~= '' then estSimpleTexte = false break end end if estSimpleTexte then result[ 2 ] = texteUnit for r = #result, 3, -1 do result[ r ] = nil end end end if #result > 1 and result[ #result ] == '' then result[ #result ] = nil end return result else -- une partie de la chaine n'a pas pu être décodée, on retourne la chaine originale addErrorCat = true return { texte } end else return { } end end --- -- nomUnit retourne le nom français du code d'une unité et de son exposant. -- si le code de l'unité n'est pas reconnu, retourne false. function p.nomUnit( unit, exposant ) unit = trim( unit ) if not dataSuccess or type( unit ) ~= 'string' then return false end -- nettoyage des liens et balises HTML if unit:find( '[', nil, true ) then local Delink = require( 'Module:Delink' ) unit = Delink._delink{ unit } end if unit:find( '&lt;', nil, true ) then unit = unit:gsub( '%b&lt;>', '' ) end -- /100 local divisor = '' if unit:sub( 1, 2 ) == '10' then divisor, unit = unit:match( '^(1[0 ]*)(.+)$' ) local divisorName = { ['10'] = 'dix ', ['100'] = 'cent ', ['1000'] = 'mille ', ['10000'] = 'dix-mille ', ['100000'] = 'cent-mille ', ['1000000'] = 'un million de ', ['1000000000'] = 'un millard de ', } divisor = divisorName[ divisor:gsub( ' ', '' ) ] end -- récupère le nom de l'unité local unitTab = Data.unit[ unit ] local unitPrefix = { nom = '' } if not unitTab then unitTab = Data.unit[ unit:sub( 2 ) ] unitPrefix = Data.prefix[ unit:sub( 1, 1 ) ] if not ( unitTab and unitPrefix ) then -- pour µ, Ki, Mi, Gi... qui sont codés sur deux octets unitTab = Data.unit[ unit:sub( 3 ) ] unitPrefix = Data.prefix[ unit:sub( 1, 2 ) ] if not ( unitTab and unitPrefix ) then unitTab = false end end end -- récupère le nom de l'exposant if trim( exposant ) then local exp = tonumber( exposant ) exp = exp and Data.exposant[ math.abs( exp ) ] exposant = exp or ' puissance ' .. exposant else exposant = '' end -- assemble les deux parties if type( unitTab ) == 'table' and type( unitTab.nom ) == 'string' then return divisor .. unitPrefix.nom .. unitTab.nom .. exposant elseif unit:match( '[/%d]' ) then -- ce n'est pas du texte simple, on annule l'infobulle return false else return unit .. exposant end end function p._unite( args ) -- formatage du nombre local nombre = p.formatNombres( args[1], args.arrondi, args['décimales'] ) if nombre == '' then nombre = nil end local wiki = {} -- prefix est un paramètre interne défini par p.parseUnit, utile notamment lorsque {{unité}} est utilisé dans les infobox if args.prefix then wiki[ #wiki + 1 ] = args.prefix end if nombre then wiki[ #wiki + 1 ] = nombre end -- fraction local fraction = args.fraction if fraction then fraction = fractionUnicode[ fraction ] or fraction local nom, den = fraction:match( '^(.-)/(.+)$' ) if nom then if nom:match( '^[%dn]%d?$' ) and den:match( '^[%daeoxhklmnpst]$' ) then nom = nom:gsub( '[%dn()=+-]', supUnicode ) den = den:gsub( '[%daeoxhklmnpst()=+-]', subUnicode ) else nom = '&lt;sup style="font-size: 70%; vertical-align: 0.4em;">' .. p.formatNombres( nom ) .. '&lt;/sup>' den = '&lt;sub style="font-size: 70%; vertical-align: 0em;">' .. p.formatNombres( den ) .. '&lt;/sub>' end fraction = nom .. '⁄' .. den end if nombre then wiki[ #wiki + 1 ] = nbsp end wiki[ #wiki + 1 ] = fraction end -- à, et, ou, ×, – (tiret cadratin) local specificArgs = { '–', 'à', 'et', 'ou', '/', '//', '×', '××', '±' } for i = 1, #specificArgs do local name = specificArgs[ i ] local v = args[ name ] and trim( args[ name ] ) if v then v = p.formatNombres( v ) if name == '//' then name = '/' elseif name == '××' then name = '×' end if name == '–' and nombre and nombre:match( '^[^−]' ) and v:match( '^[^−]' ) then -- pas d'espace pour le tiret cadratin entre deux nombres positifs wiki[ #wiki + 1 ] = '–' elseif name == '×' or name == '±' then wiki[ #wiki + 1 ] = nbsp .. name .. nbsp else wiki[ #wiki + 1 ] = nbsp .. name .. ' ' end wiki[ #wiki + 1 ] = v end end -- analyse de l'unité pour la conversion (mais ne sera affiché qu'après l'incertitude + et - séparé) local units = '' local isAngular = false local unitFullName do local i = 1 local unit = trim( args[ 2 * i ] ) local nomUnits = {} local par = false while unit do local exp = p.parseNombre( args[ 2 * i + 1 ] ) local sep = '' -- gestion des exposants local expUnit = '' if exp == '' then local suffix = unit:sub( -2 ) -- yes, it's 2 bytes if suffix == '²' then exp = '2' unit = unit:sub( 1, -3 ) elseif suffix == '³' then exp = '3' unit = unit:sub( 1, -3 ) end end if #exp > 0 then expUnit = '&lt;sup>' .. exp:gsub( '^-', '−' ) .. '&lt;/sup>' -- remplace le tiret par un vrai signe moins end -- gestion de la séparation des unités et des unités en dénominateur if unit:sub( 1, 1 ) == '/' then sep = '/' unit = trim( unit:sub( 2 ) ) or '' if not par then par = true if unit:sub( 1, 2 ) == '10' then nomUnits[ #nomUnits + 1 ] = 'pour' else nomUnits[ #nomUnits + 1 ] = 'par' end else nomUnits[ #nomUnits + 1 ] = 'et par' if nomUnits[ #nomUnits - 2 ] == 'et par' then nomUnits[ #nomUnits - 2 ] = 'par' end end elseif units ~= '' then sep = nbsp end if exp:match( '^-' ) and not par then par = true nomUnits[ #nomUnits + 1 ] = 'par' end -- remplacement de l'unité par son symbole -- désactivé car ne gère pas les multiples tel mL --[[ if Data.unit[ unit ] then unit = Data.unit[ unit ].symbole end --]] if units == '' and sep == '' and ( unit == '°' or unit == '′' or unit == '″' ) then isAngular = true end units = units .. sep .. unit .. expUnit local nomUnit = p.nomUnit( unit, exp ) if nomUnit then nomUnits[ #nomUnits + 1 ] = nomUnit else -- si le code de l'unité n'est pas reconnu, insère false en première position de la table. table.insert( nomUnits, 1, false ) end i = i + 1 unit = trim( args[ 2 * i ] ) end unitFullName = nomUnits[1] and table.concat( nomUnits, ' ' ) or false end -- conversion if unitFullName then local nameSingular = mw.ustring.gsub( unitFullName, '(%a)s%f[%A]', '%1' ) local multiple = 1 local convertTable = Data.convert[ nameSingular ] if not convertTable and #nameSingular > 5 then -- gestion des multiples (Kilo, méga, mili...) local prefix = Data.prefix[ nameSingular:sub( 1, 4 ) ] or Data.prefix[ nameSingular:sub( 1, 5 ) ] local _, par = nameSingular:find( ' par ', nil, true ) local prefix2 if par then prefix2 = Data.prefix[ nameSingular:sub( par + 1, 4 ) ] or Data.prefix[ nameSingular:sub( par + 1, 5 ) ] end if prefix and Data.convert[ nameSingular:gsub( '^' .. prefix.nom, '' ) ] then convertTable = Data.convert[ nameSingular:gsub( '^' .. prefix.nom, '' ) ] multiple = 10 ^ prefix.puissance elseif prefix2 and Data.convert[ nameSingular:gsub( ' par ' .. prefix2.nom, '' ) ] then convertTable = Data.convert[ nameSingular:gsub( ' par ' .. prefix2.nom, '' ) ] multiple = 1 / 10 ^ prefix2.puissance elseif prefix and prefix2 and Data.convert[ nameSingular:gsub( '^' .. prefix.nom, '' ):gsub( ' par ' .. prefix2.nom, '' ) ] then convertTable = Data.convert[ nameSingular:gsub( '^' .. prefix.nom, '' ):gsub( ' par ' .. prefix2.nom, '' ) ] multiple = 10 ^ prefix.puissance / 10 ^ prefix2.puissance end end if convertTable then if type( convertTable[1] ) ~= 'table' then convertTable = { convertTable } end for i = 1, #wiki do local v = wiki[ i ] local n = tonumber( p.parseNombre( v ) ) if n then n = n * 10 ^ ( tonumber( p.parseNombre( args.e ) ) or 0 ) local converted = {} for _, c in ipairs( convertTable ) do local nConverted = n if c.inverse then nConverted = 1 / n end if c.M then -- M = masse molaire local M = tonumber( args.M ) if not M then break end if c.M == '*' then nConverted = nConverted * M elseif c.M == '/' then nConverted = nConverted / M end end nConverted = nConverted * multiple * c[2] + ( c[3] or 0 ) -- format nConverted = p.formatNum{ nConverted, round = c.round or 6, noHtml = true } local sep = ' ' if c[1] == '°' then -- as a reminder, this character occupies 2 bytes sep = '' end converted[ #converted + 1 ] = nConverted .. sep.. c[1] end wiki[ i ] = '&lt;span title="' .. table.concat( converted, ' ou ' ) ..'" style="cursor:help">' .. v ..'&lt;/span>' end end end end -- incertitude avec + et − séparés if trim( args['+'] ) then local approximation = '+' .. p.formatNombre( args['+'] ) .. '' if trim( args['−'] ) then approximation = approximation .. '&lt;br> −' .. p.formatNombre( args['−'] ) end wiki[ #wiki + 1 ] = '&lt;span class="nowrap">&lt;span style="display:inline-block; padding-left:0.2em; vertical-align:top; line-height:1em; font-size:80%; text-align:left;">' wiki[ #wiki + 1 ] = approximation .. '&lt;/span>&lt;/span>' end -- puissance de 10 local exposant = trim( args.e ) if exposant then exposant = p.formatNombre( exposant ) if nombre then if trim( args['±'] ) and not nombre:match( '^%(' ) then table.insert( wiki, 1, '(' ) wiki[ #wiki + 1 ] = ')' end wiki[ #wiki + 1 ] = nbsp .. '×' .. nnbsp .. '10&lt;sup>' .. exposant .. '&lt;/sup>' else wiki[ #wiki + 1 ] = '10&lt;sup>' .. exposant .. '&lt;/sup>' end end if units ~= '' then local sep = nbsp if not ( nombre or args.fraction or exposant ) then sep = '' elseif isAngular then sep = '' end -- ajoute une abréviation si le nom de l'unité est différent de l'unité (en considérant les espaces qui peuvent être devenues insécables) if unitFullName and unitFullName ~= units:gsub( nbsp, ' ' ) then units = string.format( '&lt;abbr class="abbr" title="%s">%s&lt;/abbr>', unitFullName, units ) end wiki[ #wiki + 1 ] = sep .. units end if #wiki > 0 then return table.concat( wiki ) end end function p.unite( frame ) local args if type( frame ) == 'table' then if type( frame.getParent ) == 'function' then args = frame:getParent().args else args = frame end end if args then addErrorCat = false args[1] = trim( args[1] ) or false local basique = args.basique and require( 'Module:Yesno' )( args.basique ) if args[1] and not basique then if args[1]:match( '[^%d,. -]' ) then local tempArgs = p.parseUnit( args[1] ) if not ( args[2] and tempArgs[2] ) then for k, v in pairs( tempArgs ) do args[k] = v end end end args[2] = trim( args[2] ) or false if args[2] and not args[3] then -- cas où le paramètre 2 contient 'm3' ou 'km2' local a, d = args[2]:match( '^(%a%a?)(%d)$' ) if a and Data.unit[a] then args[2] = a args[3] = d end -- cas où le paramètre 2 contient 'km/s' ou 'm3/h' if args[2]:find( '/', nil, true ) then local tempArgs = p.parseUnit( args[2] ) args[2] = false if tempArgs[1] ~= false then table.insert( tempArgs, 1, false ) end for k, v in pairs( tempArgs ) do if args[k] and v then addErrorCat = true end args[k] = args[k] or v end end end end -- args alias args['×'] = args['×'] or args['x'] -- lettre x → signe multiplié args['±'] = args['±'] or args['+-'] or args['+/-'] if args['+'] then args['−'] = args['−'] or args['-'] -- tiret → signe moins else args['–'] = args['–'] or args['-'] -- tiret → demi-cadratin end local cat = '' if addErrorCat and mw.title.getCurrentTitle():inNamespaces( 0, 4, 8, 10, 12, 14, 100, 828 ) then cat = errorCat mw.log( errorCat ,' → ', args[1], '|', args[2] ) end return ( p._unite( args ) or '' ) .. cat end end function p.emulationFormatnum( frame ) local args = frame:getParent().args return p.formatNombres( args[1] ) end return p </textarea><div id="mw-scribunto-console"></div><div class="templatesUsed"><div class="mw-templatesUsedExplanation"><p>Modèles utilisés par cette page&#160;: </p></div><ul> <li><a href="/wiki/Mod%C3%A8le:Documentation_module" title="Modèle:Documentation module">Modèle:Documentation module</a> (<a href="/w/index.php?title=Mod%C3%A8le:Documentation_module&amp;action=edit" title="Modèle:Documentation module">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:Liste_horizontale" title="Modèle:Liste horizontale">Modèle:Liste horizontale</a> (<a href="/w/index.php?title=Mod%C3%A8le:Liste_horizontale&amp;action=edit" title="Modèle:Liste horizontale">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Mod%C3%A8le:M" title="Modèle:M">Modèle:M</a> (<a href="/w/index.php?title=Mod%C3%A8le:M&amp;action=edit" title="Modèle:M">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:M%C3%A9ta_documentation_de_mod%C3%A8le" title="Modèle:Méta documentation de modèle">Modèle:Méta documentation de modèle</a> (<a href="/w/index.php?title=Mod%C3%A8le:M%C3%A9ta_documentation_de_mod%C3%A8le&amp;action=edit" title="Modèle:Méta documentation de modèle">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:M%C3%A9ta_documentation_de_mod%C3%A8le/styles.css" title="Modèle:Méta documentation de modèle/styles.css">Modèle:Méta documentation de modèle/styles.css</a> (<a href="/w/index.php?title=Mod%C3%A8le:M%C3%A9ta_documentation_de_mod%C3%A8le/styles.css&amp;action=edit" title="Modèle:Méta documentation de modèle/styles.css">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Mod%C3%A8le:M%C3%A9ta_lien_vers_projet" title="Modèle:Méta lien vers projet">Modèle:Méta lien vers projet</a> (<a href="/w/index.php?title=Mod%C3%A8le:M%C3%A9ta_lien_vers_projet&amp;action=edit" title="Modèle:Méta lien vers projet">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:Projet_Scribunto" title="Modèle:Projet Scribunto">Modèle:Projet Scribunto</a> (<a href="/w/index.php?title=Mod%C3%A8le:Projet_Scribunto&amp;action=edit" title="Modèle:Projet Scribunto">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:Test_sous-page_documentation" title="Modèle:Test sous-page documentation">Modèle:Test sous-page documentation</a> (<a href="/w/index.php?title=Mod%C3%A8le:Test_sous-page_documentation&amp;action=edit" title="Modèle:Test sous-page documentation">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Module:Bandeau" title="Module:Bandeau">Module:Bandeau</a> (<a href="/w/index.php?title=Module:Bandeau&amp;action=edit" title="Module:Bandeau">voir la source</a>) (protégé)</li><li><a href="/wiki/Module:Bandeau/Class" title="Module:Bandeau/Class">Module:Bandeau/Class</a> (<a href="/w/index.php?title=Module:Bandeau/Class&amp;action=edit" title="Module:Bandeau/Class">voir la source</a>) (protégé)</li><li><a href="/wiki/Module:Documentation" title="Module:Documentation">Module:Documentation</a> (<a href="/w/index.php?title=Module:Documentation&amp;action=edit" title="Module:Documentation">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Module:Ic%C3%B4ne_de_titre" title="Module:Icône de titre">Module:Icône de titre</a> (<a href="/w/index.php?title=Module:Ic%C3%B4ne_de_titre&amp;action=edit" title="Module:Icône de titre">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Module:Outils" title="Module:Outils">Module:Outils</a> (<a href="/w/index.php?title=Module:Outils&amp;action=edit" title="Module:Outils">voir la source</a>) (protégé)</li><li><a href="/wiki/Module:Protection" title="Module:Protection">Module:Protection</a> (<a href="/w/index.php?title=Module:Protection&amp;action=edit" title="Module:Protection">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Module:Protection/Donn%C3%A9es" title="Module:Protection/Données">Module:Protection/Données</a> (<a href="/w/index.php?title=Module:Protection/Donn%C3%A9es&amp;action=edit" title="Module:Protection/Données">voir la source</a>) (semi-protégé)</li><li><a href="/wiki/Module:Unit%C3%A9/Documentation" title="Module:Unité/Documentation">Module:Unité/Documentation</a> (<a href="/w/index.php?title=Module:Unit%C3%A9/Documentation&amp;action=edit" title="Module:Unité/Documentation">modifier</a>) </li><li><a href="/wiki/Module:Yesno" title="Module:Yesno">Module:Yesno</a> (<a href="/w/index.php?title=Module:Yesno&amp;action=edit" title="Module:Yesno">voir la source</a>) (protégé)</li></ul></div><p id="mw-returnto">Revenir à la page <a href="/wiki/Module:Unit%C3%A9" title="Module:Unité">Module:Unité</a>.</p> <!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Ce document provient de «&#160;<a dir="ltr" href="https://fr.wikipedia.org/wiki/Module:Unité">https://fr.wikipedia.org/wiki/Module:Unité</a>&#160;».</div></div> <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/fr">Politique de confidentialité</a></li> <li id="footer-places-about"><a href="/wiki/Wikip%C3%A9dia:%C3%80_propos_de_Wikip%C3%A9dia">À propos de Wikipédia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikip%C3%A9dia:Avertissements_g%C3%A9n%C3%A9raux">Avertissements</a></li> <li id="footer-places-contact"><a href="//fr.wikipedia.org/wiki/Wikipédia:Contact">Contact</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code de conduite</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Développeurs</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/fr.wikipedia.org">Statistiques</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Déclaration sur les témoins (cookies)</a></li> <li id="footer-places-mobileview"><a href="//fr.m.wikipedia.org/w/index.php?title=Module:Unit%C3%A9&amp;action=edit&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Version mobile</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-74cc59cb9d-6tzl5","wgBackendResponseTime":212,"wgPageParseReport":{"limitreport":{"cputime":"0.019","walltime":"0.023","ppvisitednodes":{"value":59,"limit":1000000},"postexpandincludesize":{"value":3543,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":6,"limit":100},"expensivefunctioncount":{"value":0,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":0,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 0.000 1 -total"]},"cachereport":{"origin":"mw-web.codfw.main-74cc59cb9d-6tzl5","timestamp":"20241128093416","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10