Jump to content
Sign in to follow this  
dil_bert

WP: adding a content (language) switcher to the menu ....

Recommended Posts

dear community hello dear freaks,


I am developing a site in Wordpress. I am using the twentyseventeen-theme. i would like language-[content-] switcher in mega menu – without any ml-system - because i do not need ml-things. While customizing the the theme according to my website needs, i found that the theme only supports one menu. I want to add another menu.  

at the moment the site has  

– Max-Mega-Menü
– etc. etx

in the menu the estimated textamount has got max 2000 words – in five languages: german, english; french, spanish, italien
<strong> note:</strong>  the texts are allready translated – no need to do a runtime translation or something similar.  I have a defined text amount where which is allready translated.

what is aimed: i want to add all those texts in to the max-mega-menu:
idea: can i do this with a added (language-[content] )switcher in the mega menu
guess: i guess that this is possible – without using a multilang system eg. like:

-WPML
-Polylang
-Weglot
-TranslatePress

again; since i only have a little amount of text which is allready translated completely i guess that i do not need a multilang system.  I guess that a  (language- [content])-switcher will be sufficient to arrrange this.

 

see the example:

 -----------------------
 | switcher of  content |
 -----------------------
     |
     |
    /|\
 ---------         ---------          ----------       ---------           ---------
 |german  |-------< |  engl. |>-------|french.  |>------|span.  |>---------|italien.|
 ---------         ---------          ----------       ---------           ---------
    \|/
     |
     |
 ------------
 |Lorem ipsum|     etc. eng.         etc. french       etc.spanish          etc.italien
 ------------
    \|/
     |
     |
 ---------
 | blabla |
 ---------

 furthermore:  to show the needs in another picture i add a second - here we see more things ...
see the structure of the page...

 

    language-switcher: de :: fr :: it ::es :: pt :: eng :: ...--+
    |                                                           |
    +-----------------------------------------------------------+
    +--------------------------------------------------------------------------------------------------------------+
    |                                                                                                              |
    |   +-------------------+ +------------------+ +----------------------------------+ +-------------------+      |
    |   |                   | |                  | |                ||                | |                   |      |
    |   |        Item 1     | |        Item 2    | |      Item 3    ||     Item 4     | |        Item 5     |      |
    |   |                   | |                  | |                ||                | |                   |      |
    |   |                   | |                  | |                ||                | |                   |      |
    |   |                   | |                  | |                ||                | |                   |      |
    |   +-------------------+ +------------------+ +----------------------------------+ +-------------------+      |
    |                                                                                                              |
    |                                                                                                              |
    |                                                                                                              |
    |                                                                                                              |
    |                                                                                                              |
    |                                                                                                              |
    |                                                                                                              |
    +--------------------------------------------------------------------------------------------------------------+
	


so i think that ,,,,I want to add another menu.... for the different languages i have - 6 different languages: .... subsequently i should add six menus in the code below...

approach: could i do it like so:</strong> Add the following code to the functions.php file. The 2 menus are the “Primary”, and “Secondary” menus.

//Register Navigations
add_action( 'init', 'my_custom_menus' );
function my_custom_menus() {
   register_nav_menus(
        array(
            'primary-menu' => __( 'Primary Menu' ),
            'secondary-menu' => __( 'Secondary Menu' )
        )
    );
}

conclusio: so i think that ,,,,i have to add alot - for the different languages i have - 6 different languages: .... subsequently i should add six menus in the code above...

well i have mused alot bout the code: To add them to my site i should have to add the following to the WordPress template files (most likely my header.php and footer.php files).

	<?php wp_nav_menu (array('theme_location' => 'primary-menu','menu_class' => 'nav'));?>
<?php wp_nav_menu (array('theme_location' => 'secondary-menu','menu_class' => 'nav'));?>
	

 
and so forth and so forth... untill i reach the six different languages..


Well - what do you think!? does this fit the needs!?

What do you think?  Love to hear from you.

Edited by dil_bert

Share this post


Link to post
Share on other sites

hi there  - good day  dear friends,

 

i have tried to find out more information on this issue:  hile i have tried to find information about how to add a language-switcher to the menu of wordpress i thougth it could go like so:

In Appearance->Menues, we have the checkbox option for the following:

Quote

 

“Add one of this for each of your languages”.

 

 

the question is: what does it do actually?

furthermore:  Is it possible to get all languages via a global variable?

guess:  well i think it just creates and adds to menu a certain custom link with the  name “language” and a empty url.


This custom link will then be replaced by actual language link in runtime. So if the site has got 3 different languages, we need 3 custom links like this. e can use the for all languages via a global variable: the so called

 global $sublanguage:

 

this will finally lead us to the following:
 

global $sublanguage;
$languages = $sublanguage->get_languages(); // return an array of WP_Post objects
foreach ($languages as $language) {
  echo $language->post_title; // -> title of language (Ex: "English")
  echo $language->post_name; // -> slug of language (Ex: "en")
  echo $language->post_content; // -> locale code of language (Ex: "en_US")
  echo $sublanguage->get_translation_link($language); // -> language url for current page
}

 

this above mentioned ideas were inspired by this thread:  https://wordpress.org/support/topic/add-language-switcher-to-menu/

note: i will do some checks to see if this fits for me...

 

 

 

Share this post


Link to post
Share on other sites

hello dear Community, good day, 

 

well i did some  further investigatins and yes i have found some solutions. see here: we re able to do this with some php code. and the good thing is  with the php-solution we
have more even control over positioning the widget in template.

if(function_exists('pll_the_languages')){
    pll_the_languages( array( 'show_flags' => 1,'show_names' => 0  ));
}

Obviously there's a great documentation at official site.

https://polylang.pro/doc/function-reference/#pll_the_language


even more solutions are possible - see them


1.) we can create a sidebar in the theme, and add it to header

<div class="drop-dl">
  <a class="lang-chose" href="#"><img src=""> Chose language</a>
  <?php get_sidebar(); ?>
</div>


2.) Then we can go to admin page and on widget section we are able to add Language Switcher to Sidebar to get Unsorted Lists from languages

3.) and yes - were  able to add small script and css code to get this work, here is CodePen demo link


Any further ideas and suggestions are very welcome :)

Just share your ideas here - so we can discuss the solutions. 

by the way:  The second solution works with "Polylang widget",  so the nice side effect is that we have addition options and functionality to chose from widget 
"Language Switcher"

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.