{"id":347140,"date":"2026-07-29T12:20:48","date_gmt":"2026-07-29T12:20:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/georgian-hyphenation\/"},"modified":"2026-07-29T12:20:27","modified_gmt":"2026-07-29T12:20:27","slug":"georgian-hyphenation","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/georgian-hyphenation\/","author":23513961,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.0.0","stable_tag":"3.0.0","tested":"7.0.2","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Georgian Hyphenation","header_author":"Guram Zhgamadze","header_description":"Automatic Georgian (\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8) hyphenation with a bundled hybrid engine (algorithm + exception dictionary). Works with any theme; includes Elementor widget presets.","assets_banners_color":"7c7699","last_updated":"2026-07-29 12:20:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/guramzhgamadze\/georgian-hyphenation","header_author_uri":"https:\/\/profiles.wordpress.org\/guramzhgamadze\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.0.0":{"tag":"3.0.0","author":"guramzhgamadze","date":"2026-07-29 12:20:27"}},"upgrade_notice":{"3.0.0":"<p>Major rebuild: engine and dictionary now ship inside the plugin (no more CDN requests), settings moved to Settings \u2192 Georgian Hyphenation, and existing options migrate automatically.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3627235,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3627235,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3627235,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3627235,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3627235,"resolution":"1","location":"assets","locale":"","width":2640,"height":1800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3627235,"resolution":"2","location":"assets","locale":"","width":2640,"height":1800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3627235,"resolution":"3","location":"assets","locale":"","width":2240,"height":1880}},"screenshots":{"1":"The settings screen (Settings \u2192 Georgian Hyphenation): enable hyphenation, load the bundled exception dictionary, set the minimum characters before and after a break, and turn on justification.","2":"One-click presets for common Elementor widgets, plus custom CSS selectors with a live preview of the currently active selector list.","3":"Justified, hyphenated Georgian text on the front end \u2014 long words break cleanly at syllable boundaries at the end of a line, just like in print."}},"plugin_section":[],"plugin_tags":[76538,158223,29738,126076,5126],"plugin_category":[43],"plugin_contributors":[271108],"plugin_business_model":[],"class_list":["post-347140","plugin","type-plugin","status-publish","hentry","plugin_tags-elementor","plugin_tags-georgian","plugin_tags-hyphenation","plugin_tags-justify","plugin_tags-typography","plugin_category-customization","plugin_contributors-guramzhgamadze","plugin_committers-guramzhgamadze"],"banners":{"banner":"https:\/\/ps.w.org\/georgian-hyphenation\/assets\/banner-772x250.png?rev=3627235","banner_2x":"https:\/\/ps.w.org\/georgian-hyphenation\/assets\/banner-1544x500.png?rev=3627235","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/georgian-hyphenation\/assets\/icon-128x128.png?rev=3627235","icon_2x":"https:\/\/ps.w.org\/georgian-hyphenation\/assets\/icon-256x256.png?rev=3627235","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/georgian-hyphenation\/assets\/screenshot-1.png?rev=3627235","caption":"The settings screen (Settings \u2192 Georgian Hyphenation): enable hyphenation, load the bundled exception dictionary, set the minimum characters before and after a break, and turn on justification."},{"src":"https:\/\/ps.w.org\/georgian-hyphenation\/assets\/screenshot-2.png?rev=3627235","caption":"One-click presets for common Elementor widgets, plus custom CSS selectors with a live preview of the currently active selector list."},{"src":"https:\/\/ps.w.org\/georgian-hyphenation\/assets\/screenshot-3.png?rev=3627235","caption":"Justified, hyphenated Georgian text on the front end \u2014 long words break cleanly at syllable boundaries at the end of a line, just like in print."}],"raw_content":"<!--section=description-->\n<p>Georgian Hyphenation inserts soft hyphens (U+00AD) into Georgian text on your site, so browsers can break long Georgian words correctly at line ends \u2014 clean justified paragraphs without ragged edges or stretched spacing.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ul>\n<li>A phonetic algorithm built on Georgian syllable structure (vowel detection, harmonic consonant clusters, gemination) finds the valid break points.<\/li>\n<li>A bundled dictionary of irregular words overrides the algorithm where Georgian orthography is unpredictable.<\/li>\n<li>Both the engine and the dictionary ship inside the plugin and are served from your own site \u2014 the plugin makes <strong>no external requests<\/strong> and loads nothing from CDNs.<\/li>\n<\/ul>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Works with any theme \u2014 target content with CSS selectors.<\/li>\n<li>One-click presets for common Elementor widgets (Text Editor, Heading, Icon Box, Testimonial, Accordion\/Toggle\/Tabs). Elementor is optional, not required.<\/li>\n<li>Watches for dynamically loaded content (AJAX, Elementor popups, infinite scroll) and hyphenates it too.<\/li>\n<li>Optional automatic justification of processed containers.<\/li>\n<li>Configurable minimum characters before\/after a break.<\/li>\n<li>Compound words keep their hyphens; already-hyphenated text is sanitized before processing, so re-processing is always safe.<\/li>\n<li>Skips code blocks, forms, and editable content automatically.<\/li>\n<\/ul>\n\n<p>The same engine is available for developers as an npm and PyPI package (<code>georgian-hyphenation<\/code>).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/georgian-hyphenation\/<\/code>, or install it through the WordPress plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Open the <strong>Georgian Hyphenation<\/strong> menu in the admin sidebar (also reachable from the toolbar and the Settings link on the Plugins screen) and choose which containers to process. The defaults cover standard post content and the common Elementor text widgets.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20call%20any%20external%20services%3F\"><h3>Does this plugin call any external services?<\/h3><\/dt>\n<dd><p>No. The hyphenation engine and the exception dictionary are bundled with the plugin and served from your own site.<\/p><\/dd>\n<dt id=\"does%20it%20require%20elementor%3F\"><h3>Does it require Elementor?<\/h3><\/dt>\n<dd><p>No. Elementor widget presets are provided for convenience, but the plugin works with any theme via CSS selectors.<\/p><\/dd>\n<dt id=\"will%20it%20change%20my%20stored%20content%3F\"><h3>Will it change my stored content?<\/h3><\/dt>\n<dd><p>No. Hyphenation happens in the visitor's browser at render time. Your posts and pages in the database are never modified, and the plugin stands aside inside the Elementor editor and the Customizer.<\/p><\/dd>\n<dt id=\"why%20don%27t%20headings%20get%20hyphenated%3F\"><h3>Why don't headings get hyphenated?<\/h3><\/dt>\n<dd><p>Headings (h1\u2013h6) are skipped by default, for two reasons: headings are conventionally not hyphenated, and some display webfonts incorrectly map the soft hyphen (U+00AD) to a visible glyph, which shows up as dashes inside heading words. If your heading font renders soft hyphens correctly, disable \"Skip headings\" or enable the Elementor Heading preset (which overrides the skip for those widgets).<\/p><\/dd>\n<dt id=\"i%20saw%20dashes%20inside%20words%20that%20are%20not%20at%20line%20ends.%20why%3F\"><h3>I saw dashes inside words that are not at line ends. Why?<\/h3><\/dt>\n<dd><p>That means the active font draws the soft hyphen as a visible glyph instead of hiding it \u2014 a font issue, most common in decorative display fonts used for headings. The plugin skips headings by default for exactly this reason. If it happens in body text, switch to a font with correct U+00AD handling.<\/p><\/dd>\n<dt id=\"why%20do%20copied%20texts%20sometimes%20contain%20invisible%20characters%3F\"><h3>Why do copied texts sometimes contain invisible characters?<\/h3><\/dt>\n<dd><p>Soft hyphens (U+00AD) are invisible break hints. Some applications preserve them when text is copied from a page. The engine strips its own hyphens before re-processing, and search engines handle soft hyphens correctly.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Complete rebuild for the WordPress.org directory.<\/li>\n<li>The hyphenation engine (v2.3.0) and the exception dictionary are now bundled with the plugin \u2014 previously both loaded from an external CDN at runtime.<\/li>\n<li>New settings screen on its own top-level admin menu (Settings API, single option), a toolbar shortcut that shows the current on\/off state, and a Settings link on the Plugins screen.<\/li>\n<li>Dynamically added content inside already-processed containers is now hyphenated too (per-node tracking).<\/li>\n<li>Justification applied via a CSS class instead of inline styles, so themes can override it.<\/li>\n<li>Code blocks, forms, and editable regions are skipped.<\/li>\n<li>Old settings are migrated automatically; options are removed on uninstall.<\/li>\n<li>Headings (h1\u2013h6) are skipped by default \u2014 some display fonts draw soft hyphens as visible dashes inside heading words. A new \"Skip headings\" toggle controls this; the Elementor Heading preset (now off by default) overrides it.<\/li>\n<li>Engine fixes: punctuation is preserved around dictionary matches; no break is inserted next to a compound-word hyphen.<\/li>\n<\/ul>\n\n<h4>2.2.7<\/h4>\n\n<ul>\n<li>Hybrid engine v2.2.7 with chainable configuration and dictionary support (CDN-based).<\/li>\n<\/ul>","raw_excerpt":"Automatic Georgian (\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8) hyphenation with a bundled hybrid engine \u2014 phonetic algorithm plus exception dictionary. No external requests.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/347140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=347140"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/guramzhgamadze"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=347140"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=347140"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=347140"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=347140"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=347140"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=347140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}