PHPackages                             beapi/simple-punctual-translation - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. beapi/simple-punctual-translation

ActiveWordpress-plugin[Localization &amp; i18n](/categories/localization)

beapi/simple-punctual-translation
=================================

Translate pages and post\_types easily

1.1.6(3mo ago)12.3k↓50%1GPL-3.0+PHP

Since Nov 14Pushed 3mo ago18 watchersCompare

[ Source](https://github.com/BeAPI/simple-punctual-translation)[ Packagist](https://packagist.org/packages/beapi/simple-punctual-translation)[ RSS](/packages/beapi-simple-punctual-translation/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (8)Versions (12)Used By (0)

[![Be API Github Banner](.github/banner-github.png)](https://beapi.fr)

Simple Punctual Translation
===========================

[](#simple-punctual-translation)

A plugin for WordPress that allow to translate any post type in another languages. Translate only the single view.

Description
-----------

[](#description)

A plugin for WordPress that allow to translate any post type in another languages.

The user features can be summarized in the ability to switch between multiple languages and on the single view of content. Thus, a page can be translated in X languages.

The architecture chosen for development is fully consistent with WordPress 3.0, we created a content type translation, and we created a taxonomy for the site languages. We customized the WordPress admin console to provide the translation functionality, a bit of AJAX to make the convenient interface. Finally, we created a widget that displays the languages available for the currently loaded content.

A translator role is automatically created with the plugin, it allows a user to this role only to create and manage translations.

The plugin offers settings:

- Automatic insertion of languages available to the end of the article
- Language detection URL : via a "lang" parameter in the address or via a prefix beginning of the address:
    -
    - or
- Enabling translations on their choice of post types
- 2 modes for the translation mechanism, which I will explain in FAQ.

Frequently Asked Questions
--------------------------

[](#frequently-asked-questions)

### What differences between the 2 translation engines ?

[](#what-differences-between-the-2-translation-engines-)

For this plugin, we did not impose an architecture defined for the translation engine, so we proposed an automatic or manual mode.

**Automatic mode**

The automatic mode is rather aimed at the general public, because no change is necessary in the source code. The idea is that, when sailing on the German version of a page, WordPress retrieves data from the original page, and our plugin is automatically injected the contents of German 3 fields, title, content and extract . This means that the German version in automatic mode will keep, if your theme display it, publication date, comments, author, tags and categories of the original post. This mode is quite sufficient to use the basic translation plugin on content types native, it is compatible to 99% on the existing WordPress installations.

**Manual mode**

This second mode is much more powerful than the first. The manual mode does not modify any data from the initial query of WordPress, so no modification is made on the theme, your content will not even be translated! To switch language, we were inspired by functions of WordPress Mu allowing switch between blogs, either `switch_to_blog()` and `restore_current_blog()`. And we have created 2 functions `switch_to_language()` and `restore_original_language()`.

The first function `switch_to_language()` toggles the content in the translated version, while the second function `restore_original_language()` allow to restore the original language of the content.

Example :

`&lt;?php the\_title(); // Title in English

switch\_to\_language(); the\_title(); // Title in French restore\_original\_language();

the\_title(); // Title in English ?&gt;`

This pair of functions allows developers to be extremely precise about which fields to translate. This mode in my opinion, should be widely preferred because it is clean, it does not interact with the original application of WordPress. Nevertheless, there are some flaws such as:

- The title page's HTML is not translated
- Plugins breadcrumb does not take into account the translation

These are mainly defects on the SEO aspect, and indeed on this first version of the plugin that we have worked the functional aspect. We rely on community feedback to improve the plugin ...

Requirements
------------

[](#requirements)

Installation
------------

[](#installation)

The Simple Punctual Translation can be installed in 3 easy steps:

1. Unzip "Simple Punctual Translations" archive and put all files into your "plugins" folder (/wp-content/plugins/) or to create a sub directory into the plugins folder (recommanded), like /wp-content/plugins/simple-punctual-translation/
2. Activate the plugin
3. Inside the Wordpress admin, go to Options &gt; Translations, adjust the parameters according to your needs, and save them.

Screenshots
-----------

[](#screenshots)

2. Settings page
3. Translations post type admin
4. Menu translations
5. Meta box for original content
6. Meta boxes for translation. Allow to choose the original content.
7. Widget settings

Who ?
-----

[](#who-)

Created by [Be API](https://beapi.fr), the French WordPress leader agency since 2009. Based in Paris, we are more than 30 people and always [hiring](https://beapi.workable.com) some fun and talented guys. So we will be pleased to work with you.

This plugin is only maintained, which means we do not guarantee some free support. Consider reporting an [issue](#issues--features-request--proposal) and be patient.

If you really like what we do or want to thank us for our quick work, feel free to [donate](https://www.paypal.me/BeAPI) as much as you want / can, even 1€ is a great gift for buying cofee :)

Changelog
---------

[](#changelog)

- Version 1.1.6 :
    - On editor load, query only the current post and not all posts, if one is selected.
    - Replace big query (1000) posts by only 1 post.
    - Use Choices.js to enable search on select, load only searched posts.
- Version 1.1.5 :
    - Allow to customize query\_var and rewrite keyword
    - Security, add some missing sanitizing
    - Security, add some SQL preparing
    - Fix some PHP compat 8+ bug
- Version 1.1.4 :
    - Fix wrong condition on save\_post
- Version 1.1.3 :
    - Fix translate select dropdown query
- Version 1.1.2 :
    - Fix infinite redirect for rest API &amp; WP-Cli
- Version 1.1.1 :
    - Fix error for not available roles
- Version 1.1.0 :
    - Put all constructors on \_\_construct
    - Remove useless not working code
    - Add quality tools
    - Remove create\_function
    - Fix code style
    - Fix some translation strings missing
- Version 1.0.5 :
    - Fix notice / sql error on 404 page
- Version 1.0.4 :
    - Use method \_\_construct() for Widget Constructor
- Version 1.0.3 :
    - Fix preview link on admin
- Version 1.0.2 :
    - Add french translation
    - Add readme.txt
    - Add screenshots
    - Fix a bug with protection of post\_parent with quick edit
- Version 1.0.1 :
    - Fix some PHP typos
- Version 1.0
    - Initial version

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance82

Actively maintained with recent releases

Popularity22

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~376 days

Recently: every ~446 days

Total

9

Last Release

98d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/132dc92943554d6b55bffa7f4914c907e5694adf872bc7ac6afebf3955a065d6?d=identicon)[beapi](/maintainers/beapi)

---

Top Contributors

[![herewithme](https://avatars.githubusercontent.com/u/898608?v=4)](https://github.com/herewithme "herewithme (34 commits)")[![lphoumpakka](https://avatars.githubusercontent.com/u/42072910?v=4)](https://github.com/lphoumpakka "lphoumpakka (13 commits)")[![MarieComet](https://avatars.githubusercontent.com/u/7976501?v=4)](https://github.com/MarieComet "MarieComet (7 commits)")[![Rahe](https://avatars.githubusercontent.com/u/1007502?v=4)](https://github.com/Rahe "Rahe (6 commits)")[![mpertici-beapi](https://avatars.githubusercontent.com/u/238022345?v=4)](https://github.com/mpertici-beapi "mpertici-beapi (5 commits)")[![stephane-gillot](https://avatars.githubusercontent.com/u/44164024?v=4)](https://github.com/stephane-gillot "stephane-gillot (2 commits)")[![asadowski10](https://avatars.githubusercontent.com/u/2150735?v=4)](https://github.com/asadowski10 "asadowski10 (2 commits)")[![ecorica](https://avatars.githubusercontent.com/u/44062770?v=4)](https://github.com/ecorica "ecorica (1 commits)")[![francoistibo](https://avatars.githubusercontent.com/u/280460?v=4)](https://github.com/francoistibo "francoistibo (1 commits)")

###  Code Quality

Static AnalysisPsalm

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/beapi-simple-punctual-translation/health.svg)

```
[![Health](https://phpackages.com/badges/beapi-simple-punctual-translation/health.svg)](https://phpackages.com/packages/beapi-simple-punctual-translation)
```

###  Alternatives

[mediawiki/translate

The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software

457.9k](/packages/mediawiki-translate)[mediawiki/universal-language-selector

The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.

2418.6k](/packages/mediawiki-universal-language-selector)[mediawiki/semantic-interlanguage-links

A Semantic Mediawiki extension to create and manage interlanguage links.

125.9k](/packages/mediawiki-semantic-interlanguage-links)[wcm/wcm-lang-switch

Adds a button to the admin toolbar. This buttons allows users to seamlessly switch between available languages..

212.0k](/packages/wcm-wcm-lang-switch)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
