Giter Site home page Giter Site logo

babble's Introduction

Babble

  • Tags: translations, translation, multilingual, i18n, l10n, localisation
  • Requires at least: 3.5.1
  • Tested up to: 4.1.1
  • Stable tag: 1.5.1
  • License: GPLv2 or later
  • License URI: http://www.gnu.org/licenses/gpl-2.0.html

Multilingual WordPress done right.

Description

This plugin is at a beta stage for translating:

  • Posts
  • Pages
  • Custom post types
  • Categories
  • Tags
  • Custom taxonomies.

It is powering a live site at http://freespeechdebate.com/.

The plugin was built with an aversion to both additional database tables, additional columns or column changes and a desire to keep additional queries to a minimum. The plugin is (in theory) compatible with WordPress.com VIP and was built with this platform in mind.

There are a lot of @FIXME comments, expressing doubts, fears, uncertainties and unknowns; feel free to weigh in on any of them.

Please add bugs and contribute patches and pull requests to https://github.com/cftp/babble/issues

Pull requests on the develop branch, please, not the master branch.

Contributors: Simon Wheatley, John Blackbourn, Scott Evans, Simon Dickson, Marko Heijnen, Tom Nowell, Gary Jones, Emyr Thomas

Installation

Installation is fairly standard:

  1. Upload the babble directory to the /wp-content/plugins/ directory
  2. Ensure pretty permalinks are activated in Settings -> Permalinks, not sure how it will cope without these!
  3. Activate the plugin through the 'Plugins' menu in WordPress
  4. You'll now be prompted to set the languages you want, you can pick from any of the language packs you've got installed
  5. You'll notice the language switcher menu in the admin bar, use this to switch languages and (depending on context) to create new versions of the content you are looking at (from the front end) or editing (from the admin area)

Screenshots

Trigger a translation from the post edit screen
Trigger a translation from the post edit screen

View the jobs in the translation queue
View the jobs in the translation queue

Add the translation on the translation editor
Add the translation on the translation editor

Changelog

1.5.1

  • Fix for not syncing when updating post meta (#261)

1.5

  • New functionality for translating post meta data.
  • New option to immediately create blank translations when a translation job is open.
  • Use the default language text direction for translations which have empty content.
  • Visual tweaks to the translation editing screen.

1.4.4

  • Load the interface textdomain when loading and displaying the admin toolbar on the front end.
  • Correctly set the interface language and content language separately from each other.
  • The WPLANG constant is deprecated since WP 4.0. We now give preference to the WPLANG option when setting the defaults.
  • Fix registration of 'term_translation' taxonomy.
  • Fix breaking rewrite rules starting with ^.
  • Various corrections to templates and body classes.
  • Various smaller bug fixes.

1.4.3

  • Fix the single post template names
  • Update the bundled External Update API library

1.4.2

  • Fix the language switcher widget so it correctly displays language names

1.4.1

  • Add the External Update API library to serve updates to Babble from GitHub

1.4

  • ENHANCEMENT: Translation job UI and workflow
  • ENHANCEMENT: Separation of admin language setting from the content language
  • Various fixes and enhancements

gap of time while we add various things

alpha 1.1

  • Taxonomy terms.

alpha 1

  • Proof of concept concentrating on the translation of posts. Taxonomies and menus are not handled yet. Widgets are out of scope completely for this phase of work.

babble's People

Contributors

emzo avatar garyjones avatar johnbillion avatar markoheijnen avatar ptasker avatar simonwheatley avatar tomjn avatar willmot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

babble's Issues

Are those languages hard-coded?

You might know this already; but the dropdown list of languages in the Admin Bar is only showing me German and Hebrew.

I've got German installed already in that install; and if I switch to German, I see German. That's great. But I don't have Hebrew. And the dropdown isn't listing the many other languages I do have installed.

Commenting: refreshing to what?

Looks like we have an issue with the URL which comes back after you comment.

1
I'm looking at a French language translation of an English post (custom type). I submit a comment, and the screen refreshes. But it's a curious mix: the post content is French, but the chrome is English. (eg 'Home' in the tab bar, rather than 'Accueil') Looks like an issue with the URL that comes back:

/en/media_fr_fr/fr-a-muscular-view-of-free-speech/

2
I'm looking at a French translation of an ordinary 'post'. I add a comment, and the screen refreshes to:

/2011/12/09/experience-synchronisation-des-commentaires/#comment-27

... giving me a 404. But if I add the 'fr' manually to the front of the URL, it's fine.

Date syncing between languages

Posts in a translation group should sync the dates as follows:

  • post_date and post_date_gmt should treat the post in the default language as canonical, i.e. the date on the post in the default language should be sync'd to all the other posts in that translation group.
  • post_modified and post_modified_gmt should be individual to each individual post, e.g. the German translation will have a different modified date from the default language post.

Filtering the admin post list view by term causes exception

When filtering a post list in the admin area by a term, the get_transid throws the exception show at the end of this issue.

To reproduce:

  1. Install Babble, etc
  2. Create some posts and categorise them
  3. Go to Admin > Posts > All Posts and click on one of the categories or tags shown in the table list
  4. Boom

The fatal error with back trace:

[26-Jan-2012 11:58:30] PHP Fatal error: Uncaught exception 'Exception' with message 'Please specify a target term_id' in /srv/www/freespeechdebate.com/htdocs/wp-content/plugins/babble/class-taxonomy.php:776 Stack trace: #0 /srv/www/freespeechdebate.com/htdocs/wp-content/plugins/babble/class-taxonomy.php(603): Babble_Taxonomies->get_transid(NULL) #1 /srv/www/freespeechdebate.com/htdocs/wp-content/plugins/babble/api.php(94): Babble_Taxonomies->get_term_translations(NULL, NULL) #2 /srv/www/freespeechdebate.com/htdocs/wp-content/plugins/babble/class-switcher-menu.php(100): bbl_get_term_translations(NULL, NULL) #3 /srv/www/freespeechdebate.com/htdocs/wp-content/plugins/babble/class-switcher-menu.php(51): Babble_Switcher_Menu->populate_links() #4 /srv/www/freespeechdebate.com/htdocs/wp-content/plugins/babble/api.php(495): Babble_Switcher_Menu->get_switcher_links('bbl-admin-bar') #5 /srv/www/freespeechdebate.com/htdocs/wp-content/plugins/babble/class-admin-bar.php(23): bbl_get_switcher_links('bbl-admin-bar') #6 [internal function]: Babble_Admin_bar->admin in /srv/www/freespeechdebate.com/htdocs/wp-content/plugins/babble/class-taxonomy.php on line 776

Permalinks in wrong language

Currently, when viewing the German Hello World, the permalink for the English Hello World is prefixed with de_DE. Not good.

Sometimes slugs get stuck on child posts

When editing German language content in the FSD site I came across this situation:

A parent and child post of post_type principle_de_de which have the same post_name and which wouldn't allow the post_name to be edited by changing the slug below the title in the admin edit UI. I changed the post_name in the DB, flushed the object cache, and it now seems fine.

One to keep an eye on.

How to deal with the is_* conditional tags?

Off the top of my head:

  • is_front_page – e.g. should is_front_page return true on http://example.com/de/?
  • is_home – similar issues to is_front_page
  • is_page – can we make this return true for post_types shadowing the page post_type, e.g. page_de and similar?
  • is_attachment
  • is_category and is_tag – how does this cope when on the archive page for a taxonomy which is shadowing category, e.g. category_de and similar
  • is_tax – similar problems to the is_tag
  • is_page
  • is_singular – if you use is_singular( 'post_type' ) what should happen when you're on a shadow of that post_type?

Thoughts?

Array issue on activate

Just activated the plugin, getting this message:

Warning: array_keys() expects parameter 1 to be array, null given in /Users/simond/checkouts/github/babble/babble-poc.php on line 54 Warning: array_merge(): Argument #2 is not an array in /Users/simond/checkouts/github/babble/babble-poc.php on line 54

I'm running it in a completely fresh child site in my main multisite install.

Comment syncing

We don't yet have comments being collated from all translations into a single thread.

Comments added to an English version are only then appearing on the English version. Comments on the French version appear only on the French version. And so on. Seems to affect all types of post: built-in posts, and CPTs.

You probably know that. But better to put it down here, just in case.

PHP notices

New post screen:

  • Notice: Undefined variable: post_id in babble\class-post-public.php on line 778

All screens:

  • Notice: Undefined property: stdClass::$display_name in babble\class-switcher-menu.php on line 175

Image sizes

Check that uploaded images can use all built-in and custom image sizes (e.g. sizes added with add_image_size) in the theme. There is a suspicion that under some circumstances the ‘physical’ image files are created, but the metadata pointing to them is lost and so the files linked on the page in the image src attribute is the full size image.

Actual subfolder and Multisite subfolder installs

Check the plugin works as expected in an “actual” subfolder install (i.e. where WordPress is installed in a subdirectory off the document root) and in a multisite subfolder install (i.e. a WP network setup to use subfolders rather than subdirectories).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.