French Typo
French Typo
Description
French Typo automatically applies French typography rules to your content. Choose regular or thin non-breaking spaces in Settings > French Typo and save to add spaces before punctuation (;, :, !, ?, %, «, »); until you do, punctuation spacing stays off. It replaces (c) with ©, (r) with ®, and (tm) / (TM) with ™. It can normalize common French ordinal abbreviations (1ère 1re, 3ème 3e, etc.) when that option is enabled (on by default until you save settings without it).
Rules apply to posts, pages, excerpts, taxonomies, archives, comments, widgets, menus, RSS feeds, REST API, custom fields, breadcrumbs, and SEO metadata. Most areas can be enabled or disabled in settings. SEO titles, meta descriptions, and Open Graph/Twitter strings from Yoast SEO, Rank Math, or SEOPress are not gated by the same toggles as post title and content; breadcrumbs use their own option.
Features
- Non-breaking spaces before punctuation marks
- Optional French ordinal abbreviations (
1ère1re,3ème3e, hyphenated “n-ième”nième, etc.), with the same raw HTML boundaries as other rules - Special character replacements (
(c)©,(r)®) - Configurable: regular or thin non-breaking spaces
- Comprehensive coverage: all WordPress content areas
- Granular control: enable or disable each area individually
- SEO integration: Yoast SEO, Rank Math, SEOPress
- Custom fields support: ACF and Meta Box
- Respects HTML and shortcodes
Author & Credits
Jason Rouet
* Website: jasonrouet.com
* Email: bonjour@jasonrouet.com
* WordPress.org: profiles.wordpress.org/jaz_on/
You can support this project on Ko-fi or GitHub Sponsors.
This plugin is a fork of French Typo created by Gilles Marchand (master_shiva), completely rebuilt since March 2024 with the help of Jean-Baptiste Audras. Inspired by TypoFR, Orthotypo, and Consistency.
Installation
- Upload the plugin files to
/wp-content/plugins/french-typo, or install through the WordPress plugins screen. - Activate the plugin.
- Configure options in
Settings > French Typo.
Faq
No. Typography rules are applied on-the-fly when content is displayed, without modifying the original content in the database.
Regular spaces ( ) are standard and prevent line breaks. Thin spaces ( ) are narrower and may not display correctly depending on the font or browser.
Yes. You can disable non-breaking spaces or character replacements, and choose which content areas to process (SEO plugin title/meta/social strings are separate from those checkboxes; see description).
No. Narrow spaces, (c)/(r)/(tm) replacements, and optional ordinal abbreviations are skipped inside script, style, pre/code (nested), and textarea, and in embedded CSS (e.g. SVG). The Verse block stays typographic unless it is also a Code block. See the plugin documentation on GitHub for details.
No. English-style ordinals and non-standard 1ème are left as typed. Disable Ordinal abbreviations under Settings > French Typo if you prefer to keep forms like 3ème in French text.
Reviews
Just perfect
By chaplin89 on March 17, 2026
Je pensais devoir coder ça moi-même mais tu as fait ça parfaitement. Juste merci 😉
Simple, efficent and very useful ! Thanks
By Béryl de La Grandière (beryldlg) on November 20, 2025
Merci Jason, super initiative, ça manquait !
Je regarde ta todo et j'ai quelques remarques à ajouter
Concernant les abréviations de nombres ordinaux
premier donne bien 1er mais première donne 1re et non 1ère
Deuxième et troisième donnent 2e et 3e dans tous les cas, pas de 2ème ou 3ème
Sinon les numéraux indéfinis s’abrègent en nième nième et xième, ce qui est calqué sur leur prononciation.
Changelog
Full history for all versions: CHANGELOG.md on GitHub.
1.2.1
- Fixed: Settings page HTML for narrow-space and special-character help — tag names in angle brackets are escaped so the form and save button render correctly (browsers no longer interpret
script/textarea/ etc. as live tags). - Changed: Regenerated
languages/french-typo.potfor those admin strings; dropped bundledfr_FRPO from the repo (translations on translate.wordpress.org). - Documentation: WordPress compatibility note for this release; see GitHub PR #7.
- Compatibility: Tested up to WordPress 7.0
1.2.0
- Added: Optional French ordinal abbreviations (
1ère1re,3ème3e,n-ièmenième, etc.); see GitHub issue #3 (idea from Beryl on WordPress.org). Included in PR #6. - Added: Plugins admin screen — row meta links for French Typo (GitHub, WordPress.org support, Ko-fi, documentation on GitHub, 5-star review).
- Added: Regenerated
languages/french-typo.potand French (fr_FR) translations for those meta link labels and settings strings. - Added: Stack-based raw regions — typography skipped inside
<pre>,<code>,<script>,<style>, and<textarea>(nested-safe). Gutenberg Verse stays typographic unlesswp-block-codeis on the same<pre>. - Added:
(tm)/(TM)™ with the same special-characters option as(c)/(r). - Added: Documentation — streamlined root
README.md;docs/test-post-content.mdfor manual QA;docs/configuration.md(legacysanitizedoption),docs/faq.md(where typography runs),docs/architecture.md(textareain raw markup); admin copy aligned for Posts and pages, RSS/REST toggles, and raw HTML regions. - Fixed: No narrow spaces or
(c)/(r)/(tm)/(TM)replacements inside those raw regions (e.g. Elementor SVG<style>, code samples). - Fixed: Cache key includes typography options to avoid stale output after a settings change.
- Fixed: Options sanitization no longer adds a stray
sanitizedflag or reuses a static cache across validate calls. - Improved: Settings labels and help text (Posts and pages section, raw markup, RSS/REST combined toggles).
- Credits: Julio Potier (
juliobox) and Beryl (beryldlg, profile) added to plugin contributors on WordPress.org; reflected in the Contributors header above. - Removed: Obsolete root
TODO.md(task tracking moved to other locations). - Compatibility: Tested up to WordPress 7.0
