Title: Gloty – AI Translation &amp; Multilingual
Author: wpshelf
Published: <strong>4 ສິງຫາ 2026</strong>
Last modified: 13 ສິງຫາ 2026

---

ຄົ້ນຫາປລັກອິນ

![](https://ps.w.org/gloty/assets/banner-772x250.png?rev=3634659)

![](https://ps.w.org/gloty/assets/icon.svg?rev=3634659)

# Gloty – AI Translation & Multilingual

 ໂດຍ [wpshelf](https://profiles.wordpress.org/wpshelf/)

[ດາວໂຫຼດ](https://downloads.wordpress.org/plugin/gloty.1.49.1.zip)

 * [ລາຍລອຽດ](https://lo.wordpress.org/plugins/gloty/#description)
 * [ການຣີວິວ](https://lo.wordpress.org/plugins/gloty/#reviews)
 *  [ການຕິດຕັ້ງ](https://lo.wordpress.org/plugins/gloty/#installation)
 * [ການພັດທະນາ](https://lo.wordpress.org/plugins/gloty/#developers)

 [ການຊ່ວຍເຫຼືອ](https://wordpress.org/support/plugin/gloty/)

## ຄຳອະທິບາຍ

Gloty translates your WordPress site with AI machine translation, then stores every
translation in your own database and serves it from there. Rendering a translated
page never calls a remote service — page delivery stays local and deterministic 
even if the translation service is slow or unreachable.

Serving those pages is built to be cheap. Gloty compiles your translations into 
a PHP cache file that your server’s OPcache holds in shared memory, so once it is
warm a translated page view costs no database queries for translation at all, and
the translations take almost no memory in the request. That is aimed squarely at
ordinary shared hosting with no object cache, which is where a translation plugin
normally slows a site down most. Where the technique is unavailable, Gloty serves
from the database instead and the page is still correct.

The picker offers 38 languages, each with the right hreflang code emitted for it.
That list is deliberately shorter than it could be: it is the set both AI engines’
vendors say their models support, rather than every language code in existence. 
A translation you cannot judge the quality of is worth less than one you can, so
Gloty offers the ones where the engines are known to be strong, and every translation
it produces is editable by hand.

Producing a translation does require an external service, because machine translation
is not something WordPress can do locally. Gloty sends the text that needs translating
to the hosted Gloty translator service, which translates it and returns the result
to your site in the background. The results land in your WordPress database, are
editable by hand, and keep serving with no further external calls.

**Key Features:**

 * **38 languages** — the set both AI engines’ vendors list as supported, each with
   the right hreflang code
 * **Your database, your translations** — stored locally in WordPress, never fetched
   remotely at render time
 * **Fast on slow hosting** — translations compile into a cache your server holds
   in memory, so serving a translated page costs no database queries once warm; 
   it falls back to the database safely if your host cannot do that
 * **Automatic page translation** — captures page output, extracts translatable 
   text, queues it for translation
 * **Entity-aware** — posts, pages, taxonomies, and template strings are tracked
   as distinct sources with stale detection
 * **Edit any translation** — review and correct translations from Gloty  Translations
 * **Prepare a language before publishing it** — translate in the background, check
   it over, then show it to visitors
 * **Let someone correct translations without making them an administrator** — optionally
   limited to one language
 * **A different image per language** — for screenshots, diagrams and packaging 
   that carry words
 * **The language switcher in your menu** — as ordinary menu items your theme styles,
   plus a block
 * **A sitemap of your translated pages** — so search engines can actually find 
   them
 * **Translate content that loads after the page** — load-more, AJAX filters and
   search panels
 * **Manual edits are protected** — machine sync never silently overwrites a human
   correction
 * **Glossary** — terms that must never be translated, or that must always render
   a specific way per language, promotable in one click from any translation you
   are looking at
 * **SEO-friendly** — hreflang tags, translated meta, clean /fr/page/ URLs, and 
   optional translated page addresses (/de/ueber-uns/)
 * **Language switcher** — floating widget, footer list, shortcode, or sidebar widget
 * **Optional browser-language redirect** — off by default, crawler-safe, remembered
   per visitor
 * **WooCommerce compatible** — products, cart, checkout, store AJAX fragments, 
   and order emails sent in the language the customer shopped in
 * **Gettext integration** — translates WordPress, theme, and plugin UI strings
 * **AI translation engine** — OpenAI or Google Gemini, selected for you by the 
   service on every plan
 * **Background processing** — queued dispatch with webhook delivery and a polling
   fallback
 * **Export and import** — hand a language to a translator as XLIFF or CSV, load
   their corrections back, or simply take a copy of your translations
 * **WP-CLI** — `wp gloty export`, `wp gloty import`, `wp gloty languages`
 * **Developer extensible** — filters and a REST API

**How it works:**

 1. Install Gloty and connect your site to the Gloty translator service
 2. Add your target languages
 3. Gloty discovers translatable content from your posts, taxonomies, and template 
    strings
 4. Translation runs in the background and the results are written to your database
 5. Visitors get translated pages under language-prefixed URLs (/fr/, /de/, …) and 
    can switch languages from the switcher

Translation requires an external machine-translation service. See **External services**
below for exactly what is sent and to whom.

Documentation: https://wp-shelf.com/gloty/docs/

### External services

Gloty cannot produce translations without an external machine-translation service,
because machine translation is not something WordPress can do locally. This section
describes every external request the plugin makes, what it sends, and when.

Nothing is sent anywhere until you have connected your site and translation has 
been triggered (by a scan, a Translate action, or scheduled background dispatch).
Serving an already-translated page makes no external request at all.

**1. The Gloty translator service**

All translation work is performed by the hosted Gloty translator service. The plugin
does not contact machine-translation providers directly; it sends work to the Gloty
service, which selects and calls the translation engine on your behalf and delivers
the results back to your site.

 * Service host: `https://gloty-api.wp-shelf.com` (overridable by defining the `
   GLOTY_SERVICE_URL` constant, for example to point at a self-hosted instance of
   the service).
 * What is sent: the source text to be translated (page, post, taxonomy, and template
   strings from your site), the source and target language codes, your site URL,
   and a per-site API token and license key used to identify and authenticate your
   site.
 * When: on connection verification, while dispatching queued translation batches,
   when polling for results, and when the service delivers results back to your 
   site over a signed webhook.
 * Who: the Gloty translator service, operated by WP Shelf.
 * Terms of service: https://wp-shelf.com/terms
 * Privacy policy: https://wp-shelf.com/privacy

The Gloty service in turn passes your text to the AI translation engine it selects
for the batch — OpenAI or Google Gemini. Their terms apply to that processing:

 * OpenAI — https://openai.com/policies/terms-of-use / https://openai.com/policies/
   privacy-policy
 * Google Gemini — https://ai.google.dev/terms / https://policies.google.com/privacy

**2. WordPress.org translation packs**

When you enable a language, Gloty asks WordPress.org to install the official WordPress
and plugin language packs for that locale, using WordPress core’s own updater. This
is the same request WordPress itself makes and sends no site content.

Gloty does not send analytics, telemetry, or usage tracking anywhere.

### Filters

#### gloty_compiled_map_enabled

Whether Gloty may compile your translations into a PHP cache file for OPcache to
hold in memory. The value passed in is Gloty’s own verdict on whether the server
can benefit — return `false` to switch the feature off entirely, in which case translations
are served from the object cache, a transient, or the database, exactly as in earlier
versions.

    ```
    add_filter( 'gloty_compiled_map_enabled', '__return_false' );
    ```

Returning `true` forces it on where Gloty could not confirm OPcache is active — 
useful when `opcache.restrict_api` hides the OPcache status from plugin code. Do
not force it on where OPcache is genuinely off: every request would then compile
the cache file from source, which is slower than the database read it replaces.

Defining `GLOTY_DISABLE_COMPILED_MAP` as true in `wp-config.php` disables it before
any filter can run, and Gloty honours WordPress’s own `DISALLOW_FILE_MODS` constant
without any configuration.

#### gloty_compiled_map_max_bytes

The largest cache file Gloty will write, in bytes. Default 8 MB. A translation set
that would exceed it keeps using the database.

### Source code

The admin interface is compiled from JavaScript sources before release. The uncompiled,
human-readable sources for everything in `build/` ship inside the plugin under `
src/`, together with the build configuration in `webpack.config.js` and `package.
json`. The bundles are produced by `@wordpress/scripts` (webpack) via the `build`
script in `package.json`; no minified or obfuscated code is included without its
source.

## ພາບໜ້າຈໍ

[⌊Dashboard showing translation statistics across languages⌉⌊Dashboard showing translation
statistics across languages⌉[

Dashboard showing translation statistics across languages

[⌊Translations screen for reviewing and editing individual translations⌉⌊Translations
screen for reviewing and editing individual translations⌉[

Translations screen for reviewing and editing individual translations

[⌊Settings page with translation and switcher options⌉⌊Settings page with translation
and switcher options⌉[

Settings page with translation and switcher options

## ບລັອກ

ປລັກອິນນີ້ມີ 1 ບລັອກ.

 *   Language switcher

## ການຕິດຕັ້ງ

 1. Upload the `gloty` folder to `/wp-content/plugins/`
 2. Activate the plugin through the ‘Plugins’ menu in WordPress
 3. Go to **Gloty > Connection** and connect your site to the Gloty translator service
 4. Add your target languages under **Gloty > Languages**
 5. Visit your site — translations happen automatically in the background

The setup guide covers each step in more detail: https://wp-shelf.com/gloty/docs/
getting-started.html

## ຄຳຖາມທີ່ພົບເລື້ອຍ

### Do I need an account?

Yes. Producing translations requires a connection to the Gloty translator service,
set up under Gloty  Connection. There is a free tier. Without a connection, Gloty
can still store, manage, and serve translations you already have, but it cannot 
create new ones.

### How much does it cost?

The plugin itself is free and GPL-licensed. Translation runs through the Gloty service,
which gives you a one-time free allowance to try it and paid plans for higher volume
and more sites. Every plan translates on the same AI engines. Your existing translations
continue to serve regardless of plan or status, because they live in your own database.

### Are translations stored on an external server?

Your translations are stored in your own WordPress database, and translated pages
are served from there with no external call. However, producing a translation in
the first place does send the source text to an external machine-translation service—
see **External services** above for exactly what is sent and to whom.

### My language isn’t in the list. Can you add it?

Ask and we will look at it. The list is the set of languages the AI engines’ own
vendors say their models support, which is why it is shorter than the language list
you may have seen on other plugins. Adding one means checking that the current engines
actually handle it rather than just producing confident-looking output, so it is
a real answer rather than an automatic yes.

### Does it work with page builders?

Yes. Gloty captures translatable text from rendered output as well as from WordPress
entities, so it works with Elementor, Beaver Builder, Divi, and other page builders.

### Can I edit translations manually?

Yes. Go to Gloty  Translations, find the string, and edit it. Manual edits are marked
as such and are never overwritten by later machine sync.

### Does it support WooCommerce?

Yes. Gloty translates product titles, descriptions, attributes, and the cart and
checkout pages, including WooCommerce’s AJAX cart fragments.

Order emails are not translated. They are sent outside the page rendering that Gloty
works through, so a customer who ordered in German still receives the confirmation
in your site’s source language.

### What happens to my translations if I deactivate Gloty?

Deactivating stops translated URLs from being served but leaves all data in place.
Deleting the plugin runs an uninstall routine that removes Gloty’s tables and options,
so export anything you want to keep first.

### Will this slow my site down?

Serving a translated page is designed to cost nothing extra. Gloty compiles your
translations and your glossary into a PHP cache file kept in your server’s OPcache,
so once it is warm a page view runs no database queries to translate, makes no remote
call, and holds the translations in shared memory rather than copying them into 
every request.

The cache is written in the background, never during a visitor’s page view, and 
rebuilds within about a minute of a translation changing. Until it exists — a fresh
install, or just after an edit — pages are served from the database exactly as earlier
versions did: correct, just not yet as fast.

If your host has no OPcache, if the uploads directory is not writable, or if a cache
file is ever damaged, Gloty notices and serves from the database instead, and reports
it under Dashboard  Issues. Nothing about this can make a page render incorrectly,
only more slowly.

### Where does Gloty write files?

Only one place: a `gloty-cache` folder inside your uploads directory, holding the
compiled translation cache described above (with `wp-content/cache/gloty` as a fallback
if uploads is not writable). The folder carries an index.php and .htaccess so the
files are not browsable, and each file refuses to output anything if requested directly.
Deactivating the plugin deletes them; uninstalling removes the folder too, and only
ever removes files Gloty can prove it wrote.

## ການຣີວິວ

ບໍ່ມີການຣີວິວສຳລັບປລັກອິນນີ້.

## ຜູ້ຮ່ວມພັດທະນາ ແລະ ຜູ້ພັດທະນາ

“Gloty – AI Translation & Multilingual” ແມ່ນຊອຟແວໂອເພັນຊອດ (Open Source). ບຸກຄົນ
ຕໍ່ໄປນີ້ໄດ້ມີສ່ວນຮ່ວມໃນການພັດທະນາປລັກອິນນີ້.

ຜູ້ຮ່ວມພັດທະນາ

 *   [ wpshelf ](https://profiles.wordpress.org/wpshelf/)

[ແປ “Gloty – AI Translation & Multilingual” ເປັນພາສາຂອງເຈົ້າ.](https://translate.wordpress.org/projects/wp-plugins/gloty)

### ສົນໃຈຮ່ວມພັດທະນາບໍ່?

[ເບິ່ງລະຫັດ](https://plugins.trac.wordpress.org/browser/gloty/), ກວດເບິ່ງ [ຄັງເກັບ SVN](https://plugins.svn.wordpress.org/gloty/),
ຫຼື ຕິດຕາມ [ບັນທຶກການພັດທະນາ](https://plugins.trac.wordpress.org/log/gloty/) ຜ່ານ
[RSS](https://plugins.trac.wordpress.org/log/gloty/?limit=100&mode=stop_on_copy&format=rss).

## ບັນທຶກການປ່ຽນແປງ

#### 1.49.1

 * Fixed: on a site updating to 1.43.0 or later, the new sitemap of translated pages
   returned “not found” until you re-saved your permalinks. Updating a plugin replaces
   its files without running the setup step that registers new addresses, so the
   sitemap existed and nothing could reach it. It now registers itself once, on 
   the first page load after the update.

#### 1.49.0

 * Added: if you are moving from TranslatePress, Gloty can bring your existing translations
   across instead of asking you to pay for them twice. Run `wp gloty migrate` to
   see what is on the site, then `wp gloty migrate de` for each language.
 * Translations you reviewed by hand come across as manual, so Gloty will not overwrite
   them later. Machine translations come across as machine, because that is what
   they are.
 * Anything Gloty already has a translation for is left alone — you may have corrected
   it since, and an import is not a reason to lose that. Running it twice imports
   nothing the second time.
 * Note: WPML and Polylang are detected and reported, but cannot be imported. They
   store a translation as a separate post rather than as a pair of strings, so bringing
   them across is a different job that is not built. Gloty tells you it found them
   rather than quietly importing a fraction of your site.

#### 1.48.0

 * Added: Gloty can now translate content your theme loads after the page — a “load
   more” button, an AJAX product filter, a search panel that opens without a reload.
   Until now that content arrived in your own language on a page that was otherwise
   translated.
 * Under Gloty  Settings you name the AJAX action, one per line. You only need this
   if you have the problem: your theme’s documentation, or your browser’s network
   tab, will tell you the action name.
 * It is off until you name something, on purpose. WordPress sends every plugin’s
   AJAX through one address and most of it is data rather than page content — translating
   that blindly would break a working screen instead of fixing an untranslated one.
 * Even once you name an action, anything that comes back as data rather than HTML
   is passed through untouched, so an action that usually returns content and occasionally
   returns a status message stays safe.
 * WooCommerce’s own cart and checkout were already handled and are unaffected.

#### 1.47.2

 * Fixed: meta descriptions were the way Gloty was translating its own output, and
   the checks added in 1.46.0 and 1.47.0 were guarding a different part of the plugin,
   so they never applied. Where your SEO plugin builds a description from a phrase
   Gloty has translated, that finished description is no longer collected as a new
   English source and re-translated into every language.

#### 1.47.1

 * Fixed: the 1.47.0 check only worked when the same page view both translated the
   phrase and used it. SEO plugins store the finished sentence and print it on later
   views, so in practice the check almost never fired and these entries kept being
   created. Gloty now recognises its own phrasing whenever it sees it, not only 
   in the page view that produced it.

#### 1.47.0

 * Fixed: the most common form of Gloty translating its own output. Where a theme
   builds a sentence by dropping a name into a phrase — “Decode a [brand] batch 
   code free” — the part Gloty translates is the phrase, and your theme fills the
   name in afterwards. The finished sentence therefore matches nothing Gloty has
   stored, so the check added in 1.46.0 could not recognise it and those entries
   were collected and translated all over again. Gloty now remembers the phrasing
   it handed out while building a page and recognises the finished sentence as its
   own.
 * Changed: the cleanup finds these too, so entries created this way before the 
   fix are removed along with the rest.

#### 1.46.2

 * Fixed: the cleanup added in 1.46.0 timed out on a large site instead of running.
   It now works through the table a piece at a time and reports where it got to,
   so a site with tens of thousands of translations finishes it over several runs
   rather than never.

#### 1.46.1

 * Fixed: the cleanup added in 1.46.0 could remove a legitimate English entry. Where
   an earlier translation had come back untranslated, the cleanup could mistake 
   a real English source for a copy of it. Those entries are left alone now — the
   separate “identical to their source” cleanup is the one that handles them.

#### 1.46.0

 * Fixed: Gloty could translate its own translations. On a page in one of your languages,
   a theme that builds a sentence as the page renders — a meta description with 
   the product name dropped into it, for example — can hand that finished sentence
   back to Gloty. Gloty had no way to tell it apart from a new English string, so
   it filed the Croatian version as a brand-new source and paid to translate it 
   into every language you have enabled. Text Gloty has already produced for the
   language being shown is no longer collected as something to translate.
 * Added: a cleanup for the entries that already happened. It removes the affected
   translations and the source behind them, so the next sync does not simply re-
   create them. Run it from the maintenance endpoint; each pass reports how many
   remain.

#### 1.45.2

 * Changed: the four buttons on every row of the translations screen — Edit, Translate
   now, Add to glossary, Delete — are now one menu at the end of the row. They were
   reserving a column wide enough for all four on every row, and that space came
   out of the two columns the screen is actually for: your source text and its translation.
   Nothing is harder to reach; the edit you do most often is still a single click
   on the translation itself.

#### 1.45.1

 * Fixed: the Overview’s “Done” figure no longer opens a list that disagrees with
   it. Done counts each string once per language you have enabled; the translations
   table holds more rows than that, so the filtered list it opened reported a larger
   total than the number that had just been clicked. Done is now a plain figure 
   with an explanation, and every other number on that card still opens exactly 
   the rows it counted.

#### 1.45.0

 * Added: the numbers on the Overview are now links. Click “Synced”, “Manually edited”,“
   Pending”, “Processing”, “Translating” or “Out of date” and the translations table
   opens showing exactly the rows that were counted, already filtered. The stages
   before a translation exists — Collected, Queued, Sent — open the Sync screen 
   instead, which is where that work is. “Done” is not a link: it counts each string
   once per language, so it is deliberately a smaller number than the rows behind
   it, and sending you to a list with a different total would be worse than sending
   you nowhere.
 * Added: a way to clear out-of-date translations. When you edit a page, its existing
   translations are marked out of date and keep being served until they are redone.
   If you would rather they were not, the “Out of date” card can now remove them
   and put those strings back in the queue in one action. It tells you first what
   that costs: visitors see the original text for those strings until the next sync
   translates them again, and translating them again spends quota.
 * Added: a “Translated (synced or edited)” filter on the translations screen, covering
   both machine translations and ones you have edited by hand.
 * Fixed: buttons that start something now say they are working. Refresh on the 
   Overview and the Sync screen, “Refresh status” on Billing, and saving an edit
   directly in the translations table all showed nothing while the request was in
   flight, so a slow request looked like a button that had not registered the click.
   Reordering or switching languages now shows “Saving…” as well, since those requests
   disable the whole table while they run.
 * Fixed: the language switcher can get you back to your site’s own language. Its
   link to that language is the one address on the site with no language prefix,
   and Gloty was putting the prefix back on as the page was sent — so from a translated
   page, clicking your own language led back to the page you were already reading,
   with no way out except editing the address by hand. The switcher’s links now 
   say which language they lead to, and links that say so are left as they were 
   written.

#### 1.44.0

 * Added: an “Add to glossary” button on every row of the translations screen. When
   you spot a brand or product name being translated when it should not be, or translated
   inconsistently, one click turns that row into a glossary rule — no retyping the
   term and its translation on the other screen. A translation identical to its 
   source becomes a “never translate” rule; anything else fixes that exact wording
   for that one language. Promote the same term again from another language and 
   it is added to the rule you already have, and a value you have set by hand is
   never overwritten: where the glossary already says something different, Gloty
   tells you instead of replacing it.

#### 1.43.9

 * Fixed: an untranslated string could come back after being cleared. Gloty reuses
   a translation it already has for the same text instead of paying for it twice,
   and it was willing to reuse one that had come back untranslated — so clearing
   a bad entry only led the next sync to copy the untranslated text back in, without
   ever asking the translation service. Text that matches its source is no longer
   reused, except where you have set it yourself.

#### 1.43.8

 * Fixed: short text taken from your rendered pages — buttons, headings, banner 
   lines — is now included in the “identical to their source” check. It was only
   looking at text of 40 characters or more, so a heading like “Try Before You Buy”
   could come back untranslated and be reported as fine, which is exactly the text
   a visitor reads first. Longer text and translations you have edited yourself 
   are treated as before, and short list values such as place and currency names
   are still left alone, because those are correctly the same in every language.

#### 1.43.7

 * Fixed: when the translation service asks the site to slow down, the affected 
   batches are no longer reported as failures. They stay queued and go out on the
   next sync, and the site stops sending for the moment rather than pushing through
   and collecting an error for every batch. Nothing was ever wrong with those batches,
   and nothing was charged for them.

#### 1.43.6

 * Added: a repair for strings left part-translated by the bug fixed in 1.43.5. 
   Those strings were marked finished with some languages still missing, and nothing
   would ever ask for them again. The new maintenance action finds them and puts
   the missing languages back in the queue — only the missing ones, so nothing you
   have already paid for is translated twice.

#### 1.43.5

 * Fixed: a string that translated into some of your languages but not all of them
   is no longer treated as finished. It was being marked done as soon as the first
   language came back, so the languages still missing were never asked for again—
   and because they had no entry at all, nothing counted them as pending either.
   That is why a site could sit at 94% with only a few hundred strings reportedly
   waiting. Those gaps are now picked up on the next sync, and only the missing 
   languages are sent.

#### 1.43.4

 * Fixed: translations that arrived after a batch had been retried are no longer
   discarded. A retry gave the batch a new internal reference, our service still
   quoted the old one, and the results came back unrecognised and were thrown away—
   work your allowance had already paid for. Results are now matched on the batch
   itself, so late arrivals land where they belong.

#### 1.43.3

 * Fixed: retrying a batch of translations that failed no longer counts against 
   your character allowance a second time. You are charged when a batch is sent,
   and a batch our translation service failed to complete used to be re-sent — and
   re-counted — every time the site tried again. Nothing is deducted twice for one
   translation now, and a retry of work you have already paid for is free.

#### 1.43.2

 * The last step of setup hands the work to people — and the card about whoever 
   will review your translations now mentions that they do not need an administrator
   account. Gloty has been able to give a role translation access, in one language
   if you want, since 1.40.0; the one screen whose job is handing work over was 
   not saying so.

#### 1.43.1

 * Fixed: on a site using Yoast, Rank Math, All in One SEO, SEOPress or The SEO 
   Framework, Gloty was adding a second WebSite block of structured data to every
   page — those plugins already emit one. Two of them on a page means a search engine
   has to pick which to believe. Gloty now leaves that to your SEO plugin, the same
   way it already leaves the meta tags to it. On a site with no SEO plugin nothing
   changes.

#### 1.43.0

 * Fixed: your translated pages were not listed in any sitemap, on any site. Gloty
   was adding them to the WordPress sitemap in a way WordPress does not support —
   it accepts four fields per entry and quietly drops anything else — so the “Add
   alternate languages to the sitemap” setting reported itself as on and emitted
   nothing, ever. If you have wondered why translated URLs never showed up in Search
   Console, this is why.
 * Gloty now publishes its own sitemap of translated pages at /gloty-sitemap-index.
   xml, one file per language, and adds it to robots.txt. That is also the only 
   approach that works if you use Yoast, Rank Math, AIOSEO or SEOPress, since each
   of those replaces the WordPress sitemap with one that knows nothing about translations.
   The setting is the same one, in the same place; it now does what its label says.
 * Note: if your SEO plugin manages robots.txt it will replace the line Gloty adds.
   The SEO screen shows the address so you can submit it to Search Console once.

#### 1.42.1

 * Fixed: when translated page addresses are turned on, the hreflang tags on a translated
   page pointed at addresses that did not exist. A German page at /de/ueber-uns/
   told search engines its English version was at /ueber-uns/ — a 404 — and said
   the same for x-default. Every language now declares the same correct set, and
   the German entry points at /de/ueber-uns/ rather than at the untranslated path.

#### 1.42.0

 * Added: you can put the language switcher in a navigation menu. Go to Appearance
   Menus, add “Languages” from the Language switcher box, and each of your published
   languages appears as a normal menu item — styled by your theme exactly like the
   ones beside it, because that is what it now is.
 * Added: a Language switcher block, so you can drop it anywhere in the editor instead
   of remembering a shortcode.
 * The links always point at the page the visitor is on, in the language they picked,
   and the language they are currently reading is marked so your theme can highlight
   it.
 * Note: a language you are still preparing does not appear in either, the same 
   as everywhere else.

#### 1.41.0

 * Added: you can show a different image in each language. Most pictures say the
   same thing everywhere, but a screenshot of an interface, a labelled diagram or
   a product shot with words on the packaging does not — and a page where the text
   is translated and the picture still says “Download now” reads worse than leaving
   it all in English would have.
 * Open an image in your media library and you will find a field per language: put
   in the ID of the version to use, and Gloty serves that one instead. It works 
   for featured images, images in your content, gallery and block images, and WooCommerce
   product images.
 * The replacement brings its own size and its own alt text, so the layout is right
   and a screen reader hears the right description.
 * Note: nothing changes for images you leave alone, and if you delete a replacement
   the original comes back rather than the page breaking.

#### 1.40.0

 * Added: you can let someone correct translations without making them an administrator.
   Until now the only way to give a reviewer access was a full admin account — the
   same account that can change your connection, spend your plan and delete your
   content.
 * Under Gloty  Settings, tick which roles may correct translations. They get one
   screen: the translation list, where they can read and fix text. They cannot change
   settings, start translations, or delete anything, and none of your account or
   billing details are sent to their browser. Administrators are always allowed 
   and do not need ticking.
 * Added: you can limit a person to particular languages. Edit their WordPress profile
   and tick the ones they work in — a freelancer hired for German then sees German
   and nothing else. Tick none to let them work in every language.
 * Note: a role also has to be able to edit posts before it can be granted this,
   so ticking Subscriber by accident does not hand out the ability to rewrite published
   text.

#### 1.39.0

 * Added: you can now prepare a language before anyone sees it. Turning a language
   on used to publish it in the same instant, and translation takes minutes to hours—
   so between the click and the finish, visitors and search engines could land on
   pages that were still half in your own language, and anything Google saw in that
   window got indexed that way.
 * A language being prepared is still translated, which is the whole point; it simply
   is not offered in the language switcher, not listed in hreflang for search engines,
   and not in your sitemap. Anyone who can manage the site sees it exactly as visitors
   eventually will, so you can check it over first.
 * Note: a visitor who follows an old link to a language you are preparing is sent
   to the same page in your site’s own language, rather than shown a “not found”—
   they asked for something real, so they get it.
 * Note: every language you already have stays published. Preparing one is a deliberate
   choice, not a new default.

#### 1.38.0

 * Added: translated page addresses, off by default. Turn on “Translate page addresses”
   in Settings and /de/about-us/ becomes /de/ueber-uns/ — the address is in the 
   same language as the page.
 * Note: it costs no extra translation. The address is worked out from the page’s
   translated title, the same way WordPress makes an address from a title you type.
 * Note: your existing addresses keep working. Nothing you have shared, and nothing
   Google has indexed, breaks — turning this on adds an address rather than moving
   one, so there is no redirect and nothing to migrate.

#### 1.37.0

 * Added: export a language and import it back. `wp gloty export de --file=de.xliff`
   writes every string as XLIFF, which is the format translation agencies and their
   software expect; `--format=csv` writes a spreadsheet instead. `wp gloty import
   de.xliff` loads corrections back in.
 * Note: anything you import is stored as a human correction, so background translation
   will never overwrite it.
 * Note: this is also how you take your translations with you. They have always 
   lived in your own database rather than on our server, and now there is a way 
   to get them out in a form other software reads — which is the part that makes
   that promise worth anything.
 * Note: an empty translation in an imported file is treated as “not translated 
   yet” and leaves your existing text alone, rather than blanking a page.

#### 1.36.0

 * Added: the dashboard now tells you how large your site is in characters — the
   unit your plan is measured in — and roughly what translating it into every language
   you have enabled would use. Choosing a plan previously meant guessing whether
   your site was two hundred thousand characters or four million, which is the number
   the decision turns on.
 * Note: it counts characters, not bytes, so accented and non-Latin text is counted
   the way the service actually bills it.

#### 1.35.0

 * Added: WooCommerce order emails now go out in the language the customer shopped
   in. Somebody who browsed your site in German, checked out in German and paid 
   was then sent an order confirmation in English — the most visible remaining gap
   on a translated store, and the one that lands in an inbox rather than on a page
   they might not visit again. The language is recorded on the order at checkout,
   because by the time the email is written there is no visitor to ask: it may be
   sent by a scheduled task, or by you clicking “Completed” in wp-admin. Both now
   send in the customer’s language.
 * Note: orders placed before this update have no recorded language, and their emails
   are unchanged.

#### 1.34.0

 * Added: a list of pages to leave untranslated, in Settings. One path per line,
   with * as a wildcard — /checkout/* covers everything below /checkout/. Useful
   for a legal page whose wording was signed off in one language, a landing page
   built for one market, or a checkout you would rather a machine did not touch.
   Write the path without a language prefix and it applies in every language you
   have. Until now the only way to exclude something was a CSS selector, which meant
   editing your theme to add one.
 * Note: an excluded page renders in your site’s own language and costs no translation
   quota.

#### 1.33.0

 * Site search now finds pages by the words your visitors actually read. WordPress
   searches the original text of your posts, and Gloty deliberately never overwrites
   that — so a visitor browsing your site in German and typing a German word into
   the search box got no results, on a page that had just shown them that word. 
   Searching in a translated language now looks through the translations as well
   as the originals. Searching in your site’s own language is unchanged, and password-
   protected posts stay hidden exactly as before.

#### 1.32.5

 * Fixed: on a WooCommerce store, order confirmation pages were broken in every 
   language except the default one. WooCommerce hangs “order received” and “pay 
   for order” off the checkout page as endpoints rather than as pages of their own,
   and a language-prefixed request lost the endpoint on the way in — so a customer
   who had shopped in a translated language paid, and was then sent to an empty 
   cart as though the order had failed. Nothing on the site said otherwise, and 
   no purchase reached the store’s analytics. Account endpoints such as “orders”
   and “downloads” were affected the same way. Found on a live store, where it had
   been silently costing every non-default-language order its confirmation.

#### 1.32.4

 * Fixed: the Gloty admin screen could go blank, with an error in the browser console,
   on sites that had used more than 80% of their translation quota. The quota warning
   added an upgrade button a moment after the notice appeared, and that combination
   crashed the page — so the site owners most likely to need the screen were the
   ones who could not open it. The same fault was fixed in the “translator service
   not connected” notice on the Sync screen before anyone hit it.

#### 1.32.3

 * Dashboard  Issues now tells you when translated pages are not using the fast 
   path, and what to do about it. The most common cause on shared hosting is that
   the server’s PHP OPcache has no free memory left to hold the cache file — in 
   which case writing it would make pages slower, not faster, so Gloty declines 
   and says so. Previously it declined silently and you had no way to know.

#### 1.32.2

 * The translation cache now reports why it did not build, if it does not. It previously
   declined for several different reasons — no translations to compile yet, a server
   memory ceiling, a permissions problem — and recorded only one of them, so “the
   cache is empty and nothing says why” could not be answered without server access.
   Each reason has a different remedy, so each now names itself.

#### 1.32.1

 * Fixed: on sites that run WordPress’s scheduled tasks from a real server cron 
   rather than from page loads — the setup WordPress itself recommends for production—
   the translation cache was never built, so the speed-up in 1.32.0 silently never
   happened. Nothing was broken and no error was reported, because not building 
   the cache is not a failure: pages simply kept being served from the database.
   Found on a live site, where the cache stayed empty with every diagnostic reporting
   healthy.
 * Added a way to build the cache on demand, so “the cache is empty and nothing 
   says why” can be answered without server access.

#### 1.32.0

 * The language picker now offers 38 languages, down from 124 locales. What went
   was everything the AI engines’ vendors do not list as supported — those produced
   confident-looking output that nobody had ever checked — along with the regional
   variants, which mostly split a language into spellings rather than into genuinely
   different translations. Any language you have already added keeps working and
   is unaffected; this only changes what can be added. If one you need is missing,
   ask us.
 * Translated pages are faster. Gloty used to re-read your whole translation set
   from the database on every page view; it now compiles that set into a cache file
   your server keeps in memory, so a warm page view reads translations without touching
   the database at all. The gain is largest on hosting without a persistent object
   cache, which is most shared hosting.
 * Your glossary is cached the same way. It was previously read from the database
   on every page view — including on sites that had never opened the glossary screen,
   which was the worst version of the problem. Together with the change above, serving
   an already-translated page now costs no translation-related database queries 
   at all once the cache is warm.
 * The cache rebuilds itself in the background whenever translations change, and
   always within a minute of a new translation arriving. Until it has, pages are
   served from the database exactly as before — correct, just not yet faster.
 * Fixed: an edited translation of a post, page or term could keep serving its old
   text for up to an hour. Editing one now takes effect on the very next page view,
   as editing a UI string always did. If you have ever corrected a translation and
   wondered why the page did not change, this was why.
 * Every part of this is optional and self-correcting. If your server has no OPcache,
   if the uploads directory is not writable, or if a cache file is ever damaged,
   Gloty falls back to the database and says so under Dashboard  Issues rather than
   failing. You can also turn it off outright with the `gloty_compiled_map_enabled`
   filter, and Gloty respects `DISALLOW_FILE_MODS`.
 * Deactivating or uninstalling removes the cache files. Your translations live 
   in the database and are untouched by any of this.

#### 1.31.0

 * The Billing screen now shows the plans you can actually buy, with their real 
   prices, straight from the licensing service. It previously offered a fixed “Pro/
   Business” pair that no longer matched the plans on sale, so newer licences were
   shown no upgrade option at all — including on the notice that appears when your
   quota runs out, which now names the cheapest plan that gives you more room.
 * “Manage subscription” only appears when there is a subscription to manage, instead
   of showing on free licences and failing when clicked.
 * The translator service now lives at its own address, `https://gloty-api.wp-shelf.
   com`. Sites already connected are moved across automatically on the next admin
   page load; a self-hosted or staging URL you set yourself is left untouched. No
   action needed, and nothing about how translation works has changed.

#### 1.30.1

 * The plugin now lists itself as “Gloty – AI Translation & Multilingual”, and its
   description says what it does rather than only naming it. Listing copy only —
   nothing about how the plugin works has changed.

#### 1.29.2

 * First release on WordPress.org.

## ຂໍ້ມູນກຳກັບ (Meta)

 *  ເວີຊັນ **1.49.1**
 *  ອັບເດດຫຼ້າສຸດເມື່ອ **2 ມື້ ທີ່ຜ່ານມາ** ທີ່ຜ່ານມາ
 *  ການຕິດຕັ້ງທີ່ໃຊ້ງານຢູ່ **ໜ້ອຍກວ່າ 10**
 *  ເວີຊັນ WordPress ** 6.4 ຫຼື ສູງກວ່າ **
 *  ທົດສອບເຖິງເວີຊັນ **7.0.4**
 *  ເວີຊັນ PHP ** 8.1 ຫຼື ສູງກວ່າ **
 *  ພາສາ
 * [English (US)](https://wordpress.org/plugins/gloty/)
 * ແທັກ
 * [language switcher](https://lo.wordpress.org/plugins/tags/language-switcher/)
   [localization](https://lo.wordpress.org/plugins/tags/localization/)[multilingual](https://lo.wordpress.org/plugins/tags/multilingual/)
   [translate](https://lo.wordpress.org/plugins/tags/translate/)[translation](https://lo.wordpress.org/plugins/tags/translation/)
 *  [ມຸມມອງຂັ້ນສູງ](https://lo.wordpress.org/plugins/gloty/advanced/)

## ການໃຫ້ຄະແນນ

ຍັງບໍ່ມີການສົ່ງຄຳວິຈານເທື່ອ.

[ການທົບທວນຂອງທ່ານ](https://wordpress.org/support/plugin/gloty/reviews/#new-post)

[ເບິ່ງທັງໝົດ ການຣີວິວ](https://wordpress.org/support/plugin/gloty/reviews/)

## ຜູ້ຮ່ວມພັດທະນາ

 *   [ wpshelf ](https://profiles.wordpress.org/wpshelf/)

## ການຊ່ວຍເຫຼືອ

ມີຄຳຖາມ ຫຼື ຕ້ອງການຄວາມຊ່ວຍເຫຼືອບໍ່?

 [ເບິ່ງຟໍຣັມການຊ່ວຍເຫຼືອ](https://wordpress.org/support/plugin/gloty/)