| 开发者 | simplepotranslate |
|---|---|
| 更新时间 | 2026年4月27日 23:22 |
| PHP版本: | 8.0 及以上 |
| WordPress版本: | 6.9 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
simplepo-translator folder to the /wp-content/plugins/ directory, or install the plugin through the WordPress plugins screen directly.No. All translations are saved to the standard WordPress languages directory (wp-content/languages/plugins/ or wp-content/languages/themes/). Your original theme and plugin files remain untouched.
The plugin stores its working translations in its own uploads directory (wp-content/uploads/simplepo-translator/), and a built-in translation loader redirects WordPress lookups there while the plugin is active. If you deactivate or remove the plugin, that loader no longer runs, so translations in the uploads directory will stop loading.
To keep your translations working after the plugin is removed, open SimplePoTranslate → Settings and click Copy translations to WordPress system directory before deactivating. This copies every translation into wp-content/languages/plugins/ and wp-content/languages/themes/, where WordPress loads them natively — no plugin required.
No. You can use the manual translation mode for free — download PO files, translate them with any external tool, and upload them back. An API key is only needed for the automated translation feature.
The plugin works with standard PO (Portable Object) and MO (Machine Object) files, which are the standard translation format for WordPress.
Yes. When using the API translation mode, you can select multiple target languages and the plugin will process them all in a single operation.
Yes. Before importing any translation, the plugin automatically creates a .bak backup of the existing PO file.
The official translation project lives at translate.wordpress.org/projects/wp-plugins/simplepo-translator/. Once a locale is approved by the WordPress Polyglots community, WordPress automatically installs the language pack on your site — no extra step required. If your locale is not yet translated and you would like the plugin's UI in your language right now, you can use SimplePoTranslate on its own POT file:
simplepo-translator.pot row and click Auto Translate (with an API key) or download it for manual translation..po/.mo lands in your uploads directory and the plugin's UI switches to your language immediately.Cannot modify header information PHP warning that could appear in debug.log on sites running with WP_DEBUG enabled. The plugin's admin pages now check headers_sent() before emitting the LiteSpeed cache-bypass header, so the header is sent when possible and quietly skipped when output has already begun (no functional impact either way)..po/.mo written into the plugin uploads directory — e.g. after a PHP timeout, memory-limit exhaustion during ZIP extraction, or the browser tab being closed mid-import. Previously the affected job became an invisible "zombie" (status marked completed but no file on disk, hidden from the Translations page). v1.0.5 keeps the download URL on the row until the write is confirmed, wraps the entire import pipeline in try/catch so any fatal surfaces as a Failed row with an error message, and uses a transient lock to prevent duplicate imports.wp-content/debug.log with a [SimplePoTranslate import] prefix, making failure diagnosis straightforward.Localization::$l10n cache and an {locale}.mo filename convention). The plugin does not write outside the uploads directory to support them; instead, after the third-party plugin has finished booting, we read our own uploads .mo and replace their in-memory translation cache via PHP reflection so our translations take effect on the frontend. The shim is scoped to one class, wrapped in try/catch, and a silent no-op on sites without Smart Slider 3 installed.WP_PLUGIN_DIR, WP_CONTENT_DIR, WP_LANG_DIR, and WPINC). All filesystem paths are now derived from plugin_dir_path( __FILE__ ) and the public wp_upload_dir() / get_theme_root() APIs, which work correctly under relocated wp-content layouts, symlinked plugins, and Bedrock-style installs..po files from any scanned location. When you edit a file stored in a plugin/theme bundle directory or in the v1.0.1 legacy system directory (wp-content/languages/), the plugin automatically copies it into the plugin uploads working area on first edit — your edits live there, the original file is never modified.[SimplePoTranslate import] log line to WordPress's error log, so the cause of any future import failure can be inspected with a single grep..pot, .po, and .mo files are now written exclusively to wp-content/uploads/simplepo-translator/ (per WordPress.org plugin team guidance). The plugin no longer writes to wp-content/languages/ or any plugin/theme bundle directory during normal operation.load_textdomain_mofile and pre_load_textdomain filters to the uploads location, so plugins with custom translation loaders (e.g. Smart Slider 3) continue to work.wp-content/languages/plugins/ and wp-content/languages/themes/. Click this before deactivating or removing the plugin if you want your translations to keep loading afterwards. This is the only code path that writes outside the uploads area, and it runs only when the administrator explicitly triggers it.wp-content/uploads/simplepo-translator/backups/ (rotated per-file, 5 most recent kept).SimplePOTranslator\Paths); direct WP_PLUGIN_DIR / WP_CONTENT_DIR references reduced to 3 security/enumeration call sites with inline justifications.wp-content/languages/plugins/ remain loadable but are read-only in the editor — re-import them to move into the new location.wp-content/languages/ files are preserved in case WordPress core / GlotPress language packs share the directory..pot files are now written to the WordPress system translations directory (wp-content/languages/plugins/ or wp-content/languages/themes/) so they survive plugin and theme updates..po/.mo files from the Auto Translate API are always routed to the WordPress system translations directory; removed a fallback that could write to a plugin's bundle folder when a locale could not be derived.wp-content/languages/ or files discovered by a prior scan.