GithubHelp home page GithubHelp logo

inpsyde / multilingual-press Goto Github PK

View Code? Open in Web Editor NEW
235.0 35.0 42.0 10.43 MB

The multisite-based free open source plugin for your multilingual WordPress websites.

Home Page: https://multilingualpress.org/

License: GNU General Public License v3.0

CSS 0.47% PHP 74.31% JavaScript 24.61% SCSS 0.61%
wordpress-plugin wordpress multilingual multilingual-websites wordpress-multisite

multilingual-press's Introduction

MultilingualPress Latest Stable Version Project Status Build Status License

MultilingualPress

UNMAINTAINED

NOTE: This repository is no longer maintained.

Description

WARNING: MultilingualPress 2 is not compatible with Gutenberg. BEFORE you update your WordPress to version 5.0 please read our MultilingualPress and WordPress 5.0 guide.

Exciting news! MultilingualPress 3.0 is released and available for Pro users! Fully refactored, based on PHP 7, Gutenberg support, improved UI and optimized for WooCommerce. Get it here!

Please note, you can't update MLP2 to MLP3 as usual, this is a complete refactor. We are currently working on a Migration tool which is available as alpha version on github. A tutorial for the migration tool can be found here

Run each language in a separate site, and connect the content in a lightweight user interface. Use a customizable widget to link to all sites.

This plugin lets you connect an unlimited amount of sites with each other. Set a main language for each site, create relationships (connections), and start writing. You get a new field now to create a linked post on all the connected sites automatically. They are accessible via the post/page editor screen - you can switch back and forth to translate them.

In contrast to most other translation plugins there is no lock-in effect: When you disable our plugin, all sites will still work as separate sites without any data-loss or garbage output.

Our Language Manager offers 174 languages, and you can edit them.

Features

  • Set up unlimited site relationships in the site manager.
  • Language Manager with 174 editable languages.
  • Edit all translations for a post from the original post editor without the need to switch sites.
  • Show a list of links for all translations on each page in a flexible widget.
  • Translate posts, pages and taxonomy terms like categories or tags.
  • Add translation links to any nav menu.
  • No lock-in: After deactivation, all sites will still work.
  • SEO-friendly URLs and permalinks.
  • Support for top-level domains per language (via multisite domain mapping).
  • Automatic hreflang support.
  • Support for custom post types.
  • Automatically redirect to the user's preferred language version of a post.
  • Duplicate sites. Use one site as template for new site, copy everything: Posts, attachments, settings for plugins and themes, navigation menus, categories, tags and custom taxonomies.
  • Synchronized trash: move all connected post to trash with one click.
  • Change relationships between translations or connect existing posts.
  • Quicklinks. Add links to language alternatives to a post automatically to the post content. This is especially useful when you don't use widgets or a sidebar.
  • User specific language settings for the back-end. Every user can choose a preferred language for the user interface without affecting the output of the front-end.
  • Show posts with incomplete translations in a dashboard widget.

We cannot guarantee free ad hoc support. Please be patient, we are a small team. You can follow our progress and development notices on our developer blog.

Premium Support

We also offer premium support to save your time. You get direct help from the developers of the plugin-and support the development. Support for Version 2 is included in every version 3 licence.

WPML to MultilingualPress

If you would like to switch from the WPML plugin to MultilingualPress 2, you can use the helping hands of WPML to MultilingualPress. This plugin converts posts from an existing WPML multilingual site via XLIFF export/import for MultilingualPress.

Installation

Requirements

  • WordPress multisite 4.2+.
  • PHP 5.2.4, newer PHP versions will work faster.

If you're new to WordPress multisite, you might find our WordPress multisite installation tutorial helpful.

Installation

Use the installer via back-end of your install or ...

  1. Unpack the download-package.
  2. Upload the files to the /wp-content/plugins/ directory.
  3. Activate the plugin through the Network/Plugins menu in WordPress and click Network Activate.
  4. Go to All Sites, Edit each site, then select the tab MultilingualPress to configure the settings. You need at least two sites with an assigned language.

Frequently Asked Questions

Will MultilingualPress translate my content?

No, it will not. It manages relationships between sites and translations, but it doesn't change the content.

Can I use MultilingualPress on a single-site installation?

That would require changes to the way WordPress stores post content. Other plugins do that; we think this is wrong, because it creates a lock-in: you would lose access to your content after the plugin deactivation.

I'm new to WordPress multisite. Are there any tutorials to get me started?

Yes, just have a look at our WordPress Multisite 1x1.

Screenshots

Screenshot 1
New columns in the site list table for the Relationships (i.e., connections with other sites) and the Site Language.

Screenshot 2
New settings tab on the Edit Site page.

Screenshot 3
New settings tab on the Add New Site page.

Screenshot 4
Plugin settings, including Custom Post Type translation.

Screenshot 5
The Language Manager.

Screenshot 6
Dashboard widget informing about currently untranslated posts.

Screenshot 7
Translate a post directly from the Edit Post page, and set the translation status and Trasher setting.

Screenshot 8
Translate a term directly from the Add New Category page.

Screenshot 9
Edit term translations on the Edit Category page.

Screenshot 10
New user settings for the sitewide Backend Language and the Language Redirect.

Screenshot 11
New Language Switcher widget.

Screenshot 12
Frontend view of a post showing both the Quicklinks and the Language Switcher widget.

Translate MultilingualPress

If you want to translate MultilingualPress, you best do so by means of the official WordPress.org GlotPress. You can, of course, just create a pull request to our repository if you already have the translation files ready. In that case, please review the guidelines for contributing to this repository.

Crafted by Inpsyde

The team at Inpsyde is engineering the Web since 2006.

License

Good news, this plugin is free for everyone! Since it's released under GPLv3, you can use it free of charge on your personal or commercial website.

Changelog

Changelog

multilingual-press's People

Contributors

biont avatar bueltge avatar dependabot[bot] avatar derpixler avatar diedexx avatar dimadin avatar dinamiko avatar dnaber-de avatar fxbenard avatar glueckpress avatar gmazzap avatar iamntz avatar jedrzejchalubek avatar kraftner avatar mschmutte avatar nullbytes avatar rebeccahum avatar tfrommen avatar tiagoschenkel avatar toscho avatar widoz 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

multilingual-press's Issues

Linking archives

Are there any plans of providing linking between categories, tags and daily/monthly/yearly archives?

I guess the latter could be created automatically based on the logic of the permalink structure and would propably be quite light solution.

Tags and categories would of course need a similar solution as in the case of posts and pages or alternatively you could have a mapping page at least in the case of categories (with a reasonable number of categories of course).

aktualisierung auf 0.8.1. Bug

hallo,
bei der aktualisierung auf 0.8.1. ist bei mir ein fehler aufgetretten: wp-admin zeigte leere seite an, erst beim manuellen löschen der dateien funktionierte alles wieder.
folgende meldung ist eben beim erneuten versuch zu aktualisieren aufgetaucht.
"Das Plugin multilingual-press/multilingual-press.php wurde in Folge eines Fehlers deaktiviert: Die Plugindatei existiert nicht."
andrej

Questions or requested features

The basic idea of Multilingual Press is wonderful although thinking of practical implementation I came to some questions. Some of these questions (if they are without answer) could be considered as feature requests:

  1. How to save and restore complete relationship between all the corresponding objects (posts, pages, categories, etc.) in all the separate domains, for instance during relocation of a web-resource?
  2. How to conduct initial automated translation when creating, importing or copying the objects?
  3. How to conduct simultaneous removal of one or more objects in all the linked domains?
  4. How to link individual objects from different domains if they existed before installation of Multilingual Press?
  5. What a method could be proposed for the mass import of posts into domains preserving existing links (say there is a need to import a number of already translated to several languages texts)?
  6. When a post is duplicating to other domains will available links to internal objects (<a href ... />) be replaced with links to relevant objects in the new domain?
  7. How to simultaneously export selected sections of selected several languages ​​(for the purpose of further publication of multilingual thesauri by other means)?

Your answers would be very valuable.
Sincerely, Oleg

Voluntary draft creation

I believe there are many users who only wish to translate some of the content to multiple languages. Usually the author already knows whether she/he wants to have a specific article or page in several languages.

In these cases the automatic draft creation actually creates more work because you need the delete the drafts you already knew you will not need.

A simple solution would be to add a check box to the editing view asking whether you want to create the drafts to other languages. This could be checked as default.

Furthermore, if you change your mind with the translation, you could just open the article/page, select the check box and hit save thus creating the drafts.

Overal: a great idea and a great plugin! If you need help with some Finnish translations, please let me know.

PHP Warnings im MLP Tab

Plugin als Network Plugin aktiviert und dann Blog bearbeiten -> MLP Tag ausgewählt

Über der Metabox "Blog Verknüpfungen"
Warning: Invalid argument supplied for foreach() in /wp-content/plugins/multilingual-press/inpsyde-multilingualpress.php on line 848

In der Metabox:
Warning: Invalid argument supplied for foreach() in /wp-content/plugins/multilingual-press/inpsyde-multilingualpress.php on line 709

Aktivierung nicht möglich

Problem:
[Tue Apr 24 23:28:43 2012] [warn] mod_fcgid: stderr: PHP Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in .../wp-content/plugins/multilingual-press/inc/class-Mlp_Settingspage.php $

Ursprung:
Veraltete PHP Version

Lösung:
Bessere Prüfung bei der Aktivierung des Plugins auf alte PHP-Version

Incorrect Use of wp_enqueue_style()

Incorrect Use of wp_enqueue_style()
Used in C:/xampp/htdocs/wp-plugins/inpsyde-multilingual-press/inpsyde-multilingualpress.php

Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or init hooks.
This message was added in version 3.3.

Link zu verknüpften Beitrag

Wenn ich einen deutschen Text habe und dafür eine englische
Übersetzung anbiete, so würde die englische Flagge bzw. ein Textlink
"read it in english" ausreichen. (und umgekehrt).

multiple domains with domain mapping

Hello there ;-)

your multilingual press plugin looks really promising ...

when it comes to websites with multiple languages i do prefer a language setup in sub directory structure, e.g.

mydomain.com/en/
mydomain.com/es/
mydomain.com/fr/

which seems to be perfectly possible with your plugin ;-)

i prefer the sub directory language structure because of the SEO aspect of a website, as google treats sub domains, like, en.mydomain.com ... fr.mydomain.com ... differently

to get a good SEO all different languages should be within one domain, like listed above.

this works fine with one domain name, but how would i achieve the same results with another domain name in the same wordpress multi site install?

let's say i setup another domain in the same wordpress multi site install in another sub directory. 2 or more subdirectories for each language ->

mydomain.com/otherDomainEnglish/
mydomain.com/otherDomainGerman/
mydomain.com/otherDomainFrench/

and then i'm going to map those domains with MU domain mapping plugin. but here i'm not sure how to domain map those sub directories? because i want to achieve the same results as with the first, primary, domain in the wordpress multi site install.

mydomain.com/otherDomainEnglish/ -> myotherdomain.com/en/
mydomain.com/otherDomainGerman/ -> myotherdomain.com/de/
mydomain.com/otherDomainFrench/ -> myotherdomain.com/fr/

but mapping to domain names with sub directories doesn't make much sense?? i could always map to sub domains ...

mydomain.com/otherDomainEnglish/ -> en.myotherdomain.com
mydomain.com/otherDomainGerman/ -> de.myotherdomain.com
mydomain.com/otherDomainFrench/ -> fr.myotherdomain.com

but then the languages would be spread out in sub domains, which i don't want to have as this is not the perfect setup for SEO.

so ... my question ->

is my suggested language sub directory setup with a second domain in the same wordpress multi site possible? or would i need to setup another wordpress multi site install for the second domain?

or could i use apache mod rewrite to tweak things?

maintaining one wordpress install for multiple domains is just a lot easier than having multiple wordpress installs for each domain ...

any ideas and suggestions are more than welcome! and also thanks for this nice plugin ;-)

greetings & fun
becki

media asset management (DE)

da einige andere issues auch auf deutsch sind, schreibe ich das hier auch kurz auf deutsch.
ich habe gerade eine test-installation eures plugins gemacht - hat soweit auch alles wunderbar funktioniert - die einzige sache, die mir fehlte, war eine gemeinsame asset-verwaltung.
wenn ich auf blog A ein asset hochgeladen habe fuer artikel 1, wurde korrekt auf blog B ein artikel 2 angelegt, der mit dem artikel 1 verlinkt ist. jedoch kann man nicht auf die in artikel 1 verwendeten bilder zugreifen.

gibt es da eine moeglichkeit, dass man das nicht zweimal (x-mal) hochladen muss?

Blog Relationships Setup

When I go into the settings and set my main site (English) to be linked to the German site it seems to work, but it also sets the reverse (DE -> EN) relationship on my German site. This works, but I don't want the updates to go from the German to English site. I did try to go into the German Multilingual Press settings and uncheck the blog relationship, but it also unchecked the relationship in the English settings. Is that by design or am I setting something up wrong?

Another problem. I am setting this up on a site that already existed and I am converting to a Multisite. The original site was the (English) site. I set up the second site as a German site and imported the content from the English site. That set up all the german blog posts and pages. With the blog relationship setting set, now when I update content on the existing site it is not updating the matching entry on the German site, but it creates a duplicate Draft post. Did I set up something wrong?

Aktualisierung der Verknüpfungen

Notice: Trying to get property of non-object in /var/www/wpbeta/wp-includes/ms-blogs.php on line 252 Call Stack: 0.0004 684792 1. {main}() /var/www/wpbeta/wp-admin/admin-ajax.php:0 0.2626 48520456 2. do_action() /var/www/wpbeta/wp-admin/admin-ajax.php:66 0.2626 48522552 3. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2626 48522608 4. Multilingual_Press->update_blog_settings() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48529072 5. do_action() /var/www/wp-plugins/multilingual-press/multilingual-press.php:912 0.2632 48531160 6. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48531216 7. Mlp_Default_Module->save_blog_settings_form_fields() /var/www/wpbeta/wp-includes/plugin.php:403 0.2695 48721608 8. update_blog_option() /var/www/wp-plugins/multilingual-press/inc/class-Mlp_Default_Module.php:276 0.2750 48959568 9. refresh_blog_details() /var/www/wpbeta/wp-includes/ms-blogs.php:441 Notice: Trying to get property of non-object in /var/www/wpbeta/wp-includes/ms-blogs.php on line 252 Call Stack: 0.0004 684792 1. {main}() /var/www/wpbeta/wp-admin/admin-ajax.php:0 0.2626 48520456 2. do_action() /var/www/wpbeta/wp-admin/admin-ajax.php:66 0.2626 48522552 3. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2626 48522608 4. Multilingual_Press->update_blog_settings() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48529072 5. do_action() /var/www/wp-plugins/multilingual-press/multilingual-press.php:912 0.2632 48531160 6. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48531216 7. Mlp_Default_Module->save_blog_settings_form_fields() /var/www/wpbeta/wp-includes/plugin.php:403 0.2695 48721608 8. update_blog_option() /var/www/wp-plugins/multilingual-press/inc/class-Mlp_Default_Module.php:276 0.2750 48959568 9. refresh_blog_details() /var/www/wpbeta/wp-includes/ms-blogs.php:441 Notice: Trying to get property of non-object in /var/www/wpbeta/wp-includes/ms-blogs.php on line 253 Call Stack: 0.0004 684792 1. {main}() /var/www/wpbeta/wp-admin/admin-ajax.php:0 0.2626 48520456 2. do_action() /var/www/wpbeta/wp-admin/admin-ajax.php:66 0.2626 48522552 3. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2626 48522608 4. Multilingual_Press->update_blog_settings() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48529072 5. do_action() /var/www/wp-plugins/multilingual-press/multilingual-press.php:912 0.2632 48531160 6. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48531216 7. Mlp_Default_Module->save_blog_settings_form_fields() /var/www/wpbeta/wp-includes/plugin.php:403 0.2695 48721608 8. update_blog_option() /var/www/wp-plugins/multilingual-press/inc/class-Mlp_Default_Module.php:276 0.2750 48959568 9. refresh_blog_details() /var/www/wpbeta/wp-includes/ms-blogs.php:441 Notice: Trying to get property of non-object in /var/www/wpbeta/wp-includes/ms-blogs.php on line 254 Call Stack: 0.0004 684792 1. {main}() /var/www/wpbeta/wp-admin/admin-ajax.php:0 0.2626 48520456 2. do_action() /var/www/wpbeta/wp-admin/admin-ajax.php:66 0.2626 48522552 3. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2626 48522608 4. Multilingual_Press->update_blog_settings() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48529072 5. do_action() /var/www/wp-plugins/multilingual-press/multilingual-press.php:912 0.2632 48531160 6. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48531216 7. Mlp_Default_Module->save_blog_settings_form_fields() /var/www/wpbeta/wp-includes/plugin.php:403 0.2695 48721608 8. update_blog_option() /var/www/wp-plugins/multilingual-press/inc/class-Mlp_Default_Module.php:276 0.2750 48959568 9. refresh_blog_details() /var/www/wpbeta/wp-includes/ms-blogs.php:441 Notice: Trying to get property of non-object in /var/www/wpbeta/wp-includes/ms-blogs.php on line 254 Call Stack: 0.0004 684792 1. {main}() /var/www/wpbeta/wp-admin/admin-ajax.php:0 0.2626 48520456 2. do_action() /var/www/wpbeta/wp-admin/admin-ajax.php:66 0.2626 48522552 3. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2626 48522608 4. Multilingual_Press->update_blog_settings() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48529072 5. do_action() /var/www/wp-plugins/multilingual-press/multilingual-press.php:912 0.2632 48531160 6. call_user_func_array() /var/www/wpbeta/wp-includes/plugin.php:403 0.2632 48531216 7. Mlp_Default_Module->save_blog_settings_form_fields() /var/www/wpbeta/wp-includes/plugin.php:403 0.2695 48721608 8. update_blog_option() /var/www/wp-plugins/multilingual-press/inc/class-Mlp_Default_Module.php:276 0.2750 48959568 9. refresh_blog_details() /var/www/wpbeta/wp-includes/ms-blogs.php:441

Call to undefined function format_code_lang()

Fatal error: Call to undefined function format_code_lang() in C:\xampp\htdocs\wp-content\plugins\multilingual-press\inpsyde-multilingualpress.php on line 938

Ich kenne noch keine Randbedingungen, aber erst mal ablegen.

Incorrect flags for some languages

The plugin is really great. I noticed that flags are shown incorrectly in the Multisite settings screen.
http://pokit.org/get/?a4a2f7527233324bf6967fd9636f5963.png

For example, my native language, Bosnian, has a flag of The Bahamas instead of Bosnia & Herzegovina. I believe the error occurred because of the different ISO codes for countries and languages. ISO code for Bosnian is 'bs' and for Bosnia it's 'ba'.
This only happens in settings. Flags are displayed correctly on the site.

via http://wordpress.org/support/topic/plugin-multilingual-press-incorrect-flags-for-some-languages

Mein Versuch etwas beizutragen

Hallo zusammen,

ich probiere gerade euer Plugin aus und hätte da ein paar Vorschläge/Feature Requests/Bugs bzgl. des Widgets zu reporten :) Würde mich freuen, wenn ich auf diesem Wege zum Plugin beitragen darf:

  • Variablen als Textdomain sind wohl nicht soo toll
  • Überschriften sind keine Attribute esc_attr() macht hier also glaub ich nicht so viel Sinn wie z.B. strip_tags() (Z. 36,66)
  • Aktuell wird beim Update 'widget_link_type' nur übernommen, wenn eine überschrift eingegeben wurd (Z. 37)
  • Die selected() Funktion könnte u.U. die options im select etwas aufräumen (Z. 47ff)
  • Anonyme Funktionen kann man mit remove_action nicht entfernen - ist das so gewollt? (Z. 136)

Zur Anzeigelogig des Widgets:
Wenn ich auf einer Einzelseite bin, macht es dann nicht Sinn die Flaggen sich auch nur auf diesen Inhalt beziehen zu lassen? Aktuell ist es ja so, dass die Flagge der Sprache die ich mir gerade ansehe auf die Startseite verlinkt. Das ist - zumindest bei mir - absolut unerwartetes Verhalten.
Erwartet hätte ich, dass die Flagge entweder garnicht angezeigt wird (denn ich bin ja eh schon da) oder wenigstens auf den gleichen Artikel verlinkt, wenn sie schon verlinkt.
Auch auf Suchergebnisseiten, paginierten Seiten, Kategorieseiten (ihr wisst worauf ich hinaus will :) ) wird nur auf die Startseiten verlinkt statt auf die Dependents in der anderen Sprache.

Abschließend möchte ich mich dafür bedanken, dass ihr dieses Projekt ins Leben gerufen habt und hier soviel Zeit investiert! Ich finde das Plugin, die Idee dahinter und die Umsetzung absolut großartig! Dankeschön!

Flaggenoptionen

Für die Anzeige der Flaggen bitte neue Optionen einbauen:

  • Die Flagge der eigenen, aktiven Site auf der man sich gerade befindet optional garnicht nicht anzeigen
  • Die Flagge der eigenen, aktiven Site auf der man sich gerade befindet bei Anzeige nicht auf sich selbst verlinken (denn das würde nur auf Link auf die aktive Seite sein, auf der ein user gerade ist. Das macht kein Sinn und ist sogar eine Barriere).
  • Flagge zu anderssprachigen Sites nur dann, wenn diese veröffentlicht sind

vorschlag widget nur anzeigen wenn es auch wirklich gebraucht wird

hi ;-)

hier noch ein vorschlag. vielleicht sollte man das widget mit den language flags nur anzeigen wenn es auch wirklich gebraucht wird, also auch einen link zu ner uebersetzung gibt.

ich hab das momentan mal mit dem plugin widget logic geloest. dort kann ich filter setzen wie, is_page()

oder is_home() || is_front_page() ... etc ...

denn wenn ich mal auf einer tag oder category page unterwegs bin, dann schickt mich das multilingual press widget eh immer nur auf die home page zurueck. ich finde des eigentlich net sooo gut. da hab ich dann lieber kein widget.

vielleicht koennte man in dem widget ein bissl logic reinbringen?

oder das ganze auch gleich via plugin widgetLogic loesen?

nur ein gedanke von mir ;-)

idee / vorschlag für 0.9 release

hi ;-)

natuerlich erstmal wie immer vielen dank fuer das nette plugin ... tolle arbeit!

jetzt haette ich aber vielleicht eine idee fuer den 0.9 release

momentan werden ja 'nur' posts und pages fuer die verschiedenen sprachen 'verlinkt' bzw verknuepft

ist man nun auf einer seite, z.b. tag seite, welche ja nicht verlinkt wurde, da es ja keine page oder post ist, fuehrt mich der link im multilanguage widget mit den flags immer wieder auf die root domain

waere es denn nicht moeglich neben pages und posts auch noch verknuepfungen fuer post tags zu machen?
oder verknuepfungen fuer die post categories?

ich denke dann waere das multilanguage-press plugin wirklich absolut erste sahne ;-)

nur eine idee, vielleicht waere das ja interessant?

danke & greetings
becki

Code Vorschlag - wenn main page (is_home) ist statische seite

hallo ;-)

erstmal wie immer vielen dank fuer euer nettes plugin. finde den ansatz echt gut!

schade finde ich ein bissl, dass ich hier vor ein paar tagen schon mal was geposted habe, mir nur leider keiner ne antwort geben will ;-(

naja ... wurst. ich hab mir nun mal die sache mit meinen wordpress setup mal genauer im code angesehen. mein setup ist ja wordpress mehr als CMS zu nutzen. von daher hab ich eine statische seite als frontpage angelegt. und als main page, also is_home, dort wo dann die articles erscheinen wiederum ne statische page.

hab ich in meinen anderen post vor ein paar tagen schon mal erzaehlt.

jetzt hab ich mal im code geguckt was dort denn so pasiert. in class-Mlp_Helpers.php gibt's ne function show_linked_elements() wo via get_theID() die current post ID geholt wird.

das geht normalerweise alles super, doch halt nicht wenn die main page eine statische page ist. dann gibt get_the_ID einfach NULL zurueck. warum weiss ich auch net, is halt so ...

von daher dachte ich mir, ich hol mir die current post ID via $wp_query

global $wp_query;
$currentElement = '';
$currentElement = (get_the_ID() == NULL) ? $wp_query->queried_object->ID : get_the_ID();

//if ( is_single() || is_page() )
if ( is_single() || is_page() || is_home() )
//$linked_elements = mlp_get_linked_elements( get_the_id() );
$linked_elements = mlp_get_linked_elements( $currentElement );

der original code ist auscommented ...

ich hab also die if abfrage um is_home() erweitert, und get_the_ID() durch $currentElement ersetzt, wobei ich dort vorher ne abfrage mache und wenn NULL dann halt via $wp_query

weiter unten gibts dann nochmals ne abfrage fuer den $output

        // Output link elements
        $output .= '<li><a ' . $class . ' href="' . ( ( is_single() || is_page() ) && isset( $linked_elements[ $language_blog ] ) && 'publish' === $post->post_status ? get_blog_permalink( $language_blog, $linked_elements[ $language_blog ] ) : get_site_url( $language_blog ) ) . '?noredirect=' . $language_string . '">' . $display . '</a></li>';

und dort hab ich auch dann auch die is_home() abfrage mit rein gemacht

        // Output link elements
        $output .= '<li><a ' . $class . ' href="' . ( ( is_single() || is_page() || is_home() ) && isset( $linked_elements[ $language_blog ] ) && 'publish' === $post->post_status ? get_blog_permalink( $language_blog, $linked_elements[ $language_blog ] ) : get_site_url( $language_blog ) ) . '?noredirect=' . $language_string . '">' . $display . '</a></li>';

und nun stimmt auch der link im multilingual-press widget auf der languag flag, sobald eine statische seite als main page / is_home() gesetzt wurde ;-)

ich dachte vielleicht interessiert das jemanden hier und wollte meinen code hier mal posten ... vielleicht kann des ja jemand brauchen?

is sicherlich noch gefrickel und man sollte vielleich noch ein paar abfragen rein machen, ob denn eine statische seite also main / home page gesetzt wurde ...

wie auch immer ... vielleicht interessierts ja jemanden??

danke & greetings
becki

p.s. kenn mich mit dem github net so tolle aus, doch wenn jemand meinen veraenderten function code habe will dann bitte einfach melden.

Widgetlogik

Zur Anzeigelogig des Widgets:
Wenn ich auf einer Einzelseite bin, macht es dann nicht Sinn die Flaggen sich auch nur auf diesen Inhalt beziehen zu lassen? Aktuell ist es ja so, dass die Flagge der Sprache die ich mir gerade ansehe auf die Startseite verlinkt. Das ist - zumindest bei mir - absolut unerwartetes Verhalten.
Erwartet hätte ich, dass die Flagge entweder garnicht angezeigt wird (denn ich bin ja eh schon da) oder wenigstens auf den gleichen Artikel verlinkt, wenn sie schon verlinkt.
Auch auf Suchergebnisseiten, paginierten Seiten, Kategorieseiten (ihr wisst worauf ich hinaus will :) ) wird nur auf die Startseiten verlinkt statt auf die Dependents in der anderen Sprache.

Page-to-page linking

Thank you for the multilingual site solution.

Since pages are related to each other, it would be good to make an option for page-to-page linking in the Multilingual Press Widget. Now it links only to main pages of the target language sites. Is it possible?

probleme bei statischer seite als frontpage

bei mir gibt es ein problem wenn ich eine statische seite als frontage nehme und auch wiederum eine statische seite als article seite.

sprich ich mache pro sprache jeweils eine statische start page

deutsch 'start' seite und english 'home' seite und definiere dann in wordpress dass diese seiten als start seiten genommen werden sollen.

das funktioniert auch wunderbar und bei domain.com linked die multi language flagge im widget auf domain.com/en/?noredirect=en

wofuer wird denn eigentlich immer der param ?noredirect=en angehaengt? wuerde es im frontend denn auch nicht ohne den param gehen? oder hat das irgendeine funktionalitaet?

dann mach ich aber fuer die articles auch 2 statische seiten

fuer deutsch ist das domain.com/aktuelles/ und fuer die englische seite dann domain.com/en/blog/ und definiere das auch in wordpress dass er die beiden statischen seiten fuer die articles hernehmen soll.

doch geh ich dann auf domain.com/aktuelles/ dann zeigt mir die flagge im widget den falschen link an, naemlich http://domain.com/en?noredirect=en, wo der link eigentlich domain.com/en/blog/?noredirect=en sein sollte.

ich denke des is wohl ein bug und hat damit zu tun dass ich wordpress gerne als CMS nutzen moechte und von daher jeweils statische seiten als frontpage und article page nutzen moechte.

nichts desto trotz finde ich euren loesungsansatz mit dem multilingual press plugin wirklich spitze ;-)

greetings
becki

Update von 0.7.5a auf 0.8.1 schlägt fehl

Ich nutze derzeit 0.7.5a, wollte nur auf 0.8.1 updaten.
Die Autoupdate-Funktion kann ich nicht nutzen, daher download und manuell ins Verzeichnis kopiert.
Dabei stoße ich auf zwei Probleme:

Problem 1. Plugin wird 2x aufgelistet:
Die Plugins-Seite zeigt nun die 0.7.5a als aktiv und "updatebar", darunter die 0.8.1er als inaktiv.
(Wahrscheinlich weil inpsyde-multilingualpress.php zu multilingual-press.php wurde?)

Problem 2. Plugin lässt sich nicht aktivieren:
Deaktiviere ich 0.7.5a und aktiviere 0.8.1, gibt es einen Internal server error in
http://[DOMAIN]/wp-admin/network/plugins.php?activate=true&plugin_status=all&paged=1&s=
(PHP 5.2.9-4, laut Requirements noch ok... Kann leider nicht auf PHP 5.3 oder frischer updaten)

php error on public function

Fatal error: Using $this when not in object context in /var/www/wp-plugins/multilingual-press/inc/class-mlp-helpers.php on line 250

run_custom_plugin()

Ausgabe einfach mal testen: var_dump( mlp_run_custom_plugin() ); im Frontend.

Sprachschlüssel in der Ausgabe

Network Admin / sites / primäre site / MU Press / Blog Relationship

Bei den Feldern wo man die Häckchen weg nehmen kann steht:

Notre Dame de Sion - fr_FR - FR /
Notre Dame de Sion - de_DE - DE /
Notre Dame de Sion - ar - AR

Network Admin / sites / secundäre site (= französisch) / Settings

Bei "WPLANG" steht fr_FR statt nur fr. Wenn ich das zu ändern versuche, kommt immer wieder fr_FR.

Network Admin / sites / secundäre site / MU Press / Blog Relationship

Bei den Feldern wo man die Häckchen weg nehmen kann steht:

Notre Dame de Sion - en - EN /
Notre Dame de Sion - de_DE - DE /
Notre Dame de Sion - ar - AR

Also wieder de_DE statt nur de!

Und bei den anderen Sites ist es ähnlich.

Früher, bevor ich EINMAL die Funktion Deaktivieren und Aktivieren (im NetAdmin Dashboard bei den Sites möglich!) nutzte und dann auch noch die Häckchen wegnahm bzw wieder hinzufügte, stand überall schön:

Notre Dame de Sion - fr - FR /
Notre Dame de Sion - de - DE /
Notre Dame de Sion - ar - AR

Wobei "- FR /", "- DE" / und "- AR" wohl für den Text steht der im Widget angezeigt wird. Was mich stört ist fr_FR statt einfach fr bzw. de_DE statt nur de!!!

Barrierefreiheits/Usability-Verbesserung der Flaggen Links

Das zweite was mir aufgefallen ist, wäre eine /Barrierefreiheits/Usability-Verbesserung:
Es wäre besser, wenn die Flagge auf die aktive Website entweder nicht klickbar oder nicht da ist.
Momentan bekomme ich bei zwei Domains beide Flaggen zu sehen und kann beide anklicken. Wenn ich auf die Flagge klicke von der Site wo ich schon bin, läd die Site nochmal. Also etwas was man aus Usabilitygründen nicht tun sollte.

Also eigentlich braucht es zwei Optionen:

  1. Flagge der eigenen Site anzeigen: aus/an.
  2. Link auf eigene Site verlinken: aus/an

via http://bueltge.de/wordpress-mehrsprachig-nutzen-ein-loesungsvorschlag/1339/#comment-467445

Sprachwechsel zu Post

Wenn man auf einer Seite auf eine Sprache wechseln möchte in der diese Seite nicht existiert, dann springt alles auf die Hauptseite der neuen Sprache.
Netter fände ich wenn das System auf eine Seite springen würde in der gesagt wird, dass diese Seite leider nicht in dieser Sprache vorhanden ist. Und ganz edel wäre es, würden noch links angefügt so ähnlich wie: "Diese Seite ist in English, Französisch,..." vorhanden wobei die Sprachen mit dem Hyperlink zu des jeweiligen Seite hinterlegt wären.

Anm. Eventuell sollten wir optional nur die Sprachen in der Auswahl ausgeben, die gepflegt sind.

Custom post type

Hallo,
I am using event organiser for events which use a custom post type. Is it possible to have the events also duplicated like it is done for normal posts/pages?
Thanks,
Johannes

bbPress beiträge

Noch ein kleines Problem mit bbPress <-> multilingual-press:

bbPress erstellt alle eingräte als Posts/Pages und nun bekomme ich Sie auch automatisch erstellt/verknüpft mit der 2.Seite.
Dies soll aber eigentlich nicht sein.

Sort order in widget

New dropdown, values: by name, by blog id

  • add filter hook to this option
  • add filter hook to load linked elements

Konstante Strings über alle Blogs hinweg

Im Editor einer page/post steht im Dropdown Feld linked posts der Name der Sprachen in unterschiedlicher Form. Und in jeder der vier Sites anders.

primäre Site (english):

French
German
ar

secundäre Site (francais):

en
German
ar

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.