Posts: 185
Threads: 8
Joined: Apr 2012
@mvlcek please, can you check it ? I'm stuck with this for a long time. When I disable i18n pages can be saved, but when enabled, it throws this errors and stays on changedata.php .. I tried saving that page in error (with success without i18n) but after enabling plugin, I get same error (and if it's not for this page, it's for another page..)
Code: PHP Fatal error: Call to a member function addChild() on a non-object in /nfsmnt/hosting2_1/3/7/3776058b-7482-4c55-b5cc-bac5ad38cd70/example.com/test/plugins/i18n_navigation/save.php on line 18
PHP Warning: simplexml_load_file(): I/O warning : failed to load external entity "/nfsmnt/hosting2_1/3/7/3776058b-7482-4c55-b5cc-bac5ad38cd70/example.com/test/data/pages/zaruky-a-reklamacie.xml" in /nfsmnt/hosting2_1/3/7/3776058b-7482-4c55-b5cc-bac5ad38cd70/example.com/test/plugins/i18n_navigation/save.php on line 15
Posts: 4
Threads: 0
Joined: Sep 2015
2015-10-02, 06:24:03
(This post was last modified: 2015-10-02, 08:11:25 by ghoscik.)
Hi,
I need help...
PHP Code: <?php
# get correct id for plugin $pluginName=basename(__FILE__, ".php");
# add in this plugin's language file global $language; i18n_merge($pluginName) || i18n_merge($pluginName, $language); // this is not working... it's returning nothing
# some stuff here...
function get_translation($field) { global $pluginName, $language; i18n_merge($pluginName) || i18n_merge($pluginName, $language); // <-- here $language is visible and returning correct value for current language return i18n($pluginName . '/' . $field); }
?>
I would like to load the corresponding language only once... not on every function call. Why $language variable is not visible when it's placed globally in file? Sorry if this is obvious but I'm not php developer...
When do this variable get set? Seems like really late that's why I can't access its value...
Posts: 2,094
Threads: 54
Joined: Jan 2011
(2015-10-02, 06:24:03)ghoscik Wrote: When do this variable [$language] get set? Seems like really late that's why I can't access its value...
The variable $language is not yet set, when the plugin is loaded. Only after all plugins are loaded - just before the page is rendered - the plugin can determine the page and set the variable.
The solution is to lazily load the translations:
PHP Code: ... $translation_initialized = false;
function get_translation($field) { global $pluginName, $language, $translation_initialized; if (!$translation_initialized) { i18n_merge($pluginName) || i18n_merge($pluginName, $language); $translation_initialized = true; } return i18n($pluginName . '/' . $field); } ?>
Posts: 4
Threads: 0
Joined: Sep 2015
2015-10-02, 19:37:41
(This post was last modified: 2015-10-02, 19:38:19 by ghoscik.)
Wohoo, that's great thanks!
Just one BUT, can I do this here?
PHP Code: <?php $thisfile=basename(__FILE__, ".php");
# add in this plugin's language file i18n_merge($thisfile, 'INSERT HERE - global $language value');
# ...
function get_translation($field) { ... }
?>
and don't use i18n_merge() in function body?
Posts: 57
Threads: 4
Joined: Sep 2015
2015-10-08, 06:05:36
(This post was last modified: 2015-10-08, 20:40:38 by Frens.)
Hi
I use
PHP Code: <?php get_i18n_navigation(return_page_slug(),0,99,I18N_SHOW_LANGUAGE); ?> // Select language <?php $languages = return_i18n_available_languages(); ?> <?php foreach ($languages as $language) { ?> <li style="float:right"><a href="<?php echo htmlspecialchars(return_i18n_setlang_url($language)); ?>"><?php echo $language; ?></a></li> <?php } ?>
To display only those menu entries that are available in the current language...
sample page menu
DE > home page1 page2 page3 page4
PL > home page1 page2 (page3 and page4 are not avaible in the PL language)
When choosse in menu the DE language and next Pl language , menu show correct in Pl language:
home page1 page2
When choosse in menu sample the (DE) page2 and next choosse language Pl , show not correct menu in Pl language
PL > home page1 page2 page3 page4 page3 and page4 are not avaible in PL language.
Posts: 1
Threads: 0
Joined: Jul 2015
hello @mvlcek,
Mirin your work and support here.
I have used your plugins before and worked great. It still is but there is a little weird bug i have encountered yesterday:
Heres the hierarchy:
-index
-page1
--item1
...
--item6
-page2
-page3
top-level links are on the navbar, 2nd level links are on the sidebar.
problem is, using <?php get_i18n_navigation('page1',1,9); ?> on the sidebar for showing the links no matter which page, links dont get the "current" class.
using <?php get_i18n_navigation(return_page_slug(),1,9); ?> works just like it should be.
Weird part is; i used same code with same plugins on another project about 3 months ago and haven't encountered this, no problems with that one. I'm travelling back and forth between two yet unable to identify the problem.
Got any suggestions?
Visual
Posts: 185
Threads: 8
Joined: Apr 2012
2015-10-10, 23:25:28
Quote:Warning: simplexml_load_file(): I/O warning : failed to load external entity "site/data/pages/other.xml" in site/plugins/i18n_navigation/save.php on line 15
Notice: Trying to get property of non-object in site/plugins/i18n_navigation/save.php on line 16
Fatal error: Call to a member function addChild() on a non-object in site/plugins/i18n_navigation/save.php on line 18
@mvlcek
happens always with I18N plugin enabled
Posts: 11
Threads: 0
Joined: Aug 2015
2015-10-22, 07:26:50
(This post was last modified: 2015-10-22, 07:27:46 by enri.)
Hello,
Lets assume that we have menu like
Main Team About Contact
Main Team About Contact is a top level menu, About has children menu but I would like to place it before contacts
Is it possible to show first 2 (Main and Team) by any command like
<?php get_i18n_navigation(return_page_slug()); ?>
and then show about submenu by
<?php get_i18n_navigation('about',1,99); ?>
then show Contact with command like
<?php get_i18n_navigation(return_page_slug()); ?>
Posts: 185
Threads: 8
Joined: Apr 2012
if you want to show child element beside root element, it becomes root element too, right ? so why your submenu items aren't put in root menu, so you can arrange it and show it like you want ?
if you still want them in submenu, you can use CSS to style submenu and items inside to be shown beside parent element and have the same size etc. so it will all look like parent links
Posts: 11
Threads: 0
Joined: Aug 2015
(2015-10-22, 08:20:31)morvy Wrote: if you want to show child element beside root element, it becomes root element too, right ? so why your submenu items aren't put in root menu, so you can arrange it and show it like you want ?
if you still want them in submenu, you can use CSS to style submenu and items inside to be shown beside parent element and have the same size etc. so it will all look like parent links
Because now this sub-menu (About) is a separate <li> element in CSS with its CSS class and manipulated by JavaScript to show animated sub-menu by clicking on About.
Posts: 185
Threads: 8
Joined: Apr 2012
sorry, I don't get it. so none of those solutions are acceptable for you ?
Posts: 11
Threads: 0
Joined: Aug 2015
(2015-10-25, 23:16:47)morvy Wrote: sorry, I don't get it. so none of those solutions are acceptable for you ?
No, now I use this code but I can't move submenu from the end of top level menu
<nav id="main-menu" class="level-0">
<ul>
<?php get_i18n_navigation(return_page_slug()); ?>
<li class="menu-item-has-children"><a href="about">About</a>
<ul class="sub-menu">
<?php get_i18n_navigation('about',1,99); ?>
</ul>
</li>
</ul>
<div class="close-button"></div>
</nav>
Posts: 32
Threads: 3
Joined: Jan 2015
Hi Mvlcek or anyone that can help
I posted here in the Themes forum some questions about doing a One Page theme with support for multiple langs .. I’m not sure if that was the right place to post .. ..
For this I’m using your i18n plugin and your I18n Gallery plugin .. I’ve then written some code (see post) and put it in my-theme/functions.php, which extracts and stacks all backend pages together pulling them from the array $pagesArray, as per post from Carlos here.
My basic questions are :
1. Why can’t I access from file functions.php the set language defined in var $language ? Is it not set yet ? .. without this I can’t extract the pages for the set language. Or is there another way ?
2. The key menuOrder in $pagesArray appears only to be set for the pages in the default lang, but not for any other langs … Do you know why ? .. So I can't sort and display the pages on menu order. Or is there another way ?
3. I18n Gallery plugin : I am using the %gallery(..)% syntax in he backend page text .. the caption language is only ever in the default lang, and not the set lang. Any idea how I can get around this ?
Appreciate any help
Aldebaran
Posts: 305
Threads: 15
Joined: Mar 2014
2015-11-19, 10:26:30
(This post was last modified: 2015-11-19, 10:27:58 by Tyblitz.)
Hey aldebaran,
I'll try to answer your first question:
Plugin authors (ideally) define plugin hooks you can hook into in order to execute your functions at a specified time.
In I18N, there's a plugin hook called theme-header (which is by the way also a default hook), which accesses the $language var (so you can be sure to access it if you hook into it). Note that you if you echo something, it will be outputted in the page's <head> .
Basically, do something like this (untested):
PHP Code: <?php function your_function() { global $language; // do something based on $language; } add_action('theme-header', 'your_function'); ?>
Posts: 210
Threads: 15
Joined: Feb 2013
(2011-07-17, 20:11:02)Connie Wrote: I need a css for the styling in IE, as the menue does not show the same as in other browsers,
please see here
maybe somebody of you has a working css for the IE?
Thanks in advance,
Connie
my adds:
CSS, unfortunately, is not compatible with all browsers, you need to check code for each browser. I always check code in Mozilla Firefox, Google Chrome, Opera, Internet Explorer (v11), Safari. if it works in all, I mean it is great! unless. you have to combine. NO Feature or compilers. If they are paid and automatic ... never give 100% guarantees compilation and compliance with the standard css ...
Posts: 32
Threads: 3
Joined: Jan 2015
(2015-11-19, 10:26:30)Tyblitz Wrote: Hey aldebaran,
I'll try to answer your first question:
Plugin authors (ideally) define plugin hooks you can hook into in order to execute your functions at a specified time.
In I18N, there's a plugin hook called theme-header (which is by the way also a default hook), which accesses the $language var (so you can be sure to access it if you hook into it). Note that you if you echo something, it will be outputted in the page's <head> .
Basically, do something like this (untested):
PHP Code: <?php function your_function() { global $language; // do something based on $language; } add_action('theme-header', 'your_function'); ?>
Hi Tyblitz
Thanks for your help .. That’s pointed me in a better direction !
Yes, you can only access a variable, here $language, after it is set/ available … obviously !
As said, I am wanting to use the functions.php file to concatenate all backend pages together but only for the set language, and then output this in the normal content area of the template, ie within the <body> ..
I am doing this at the moment by simply running the code directly from within the file … But this is WRONG .. It will run at the point where the file is imported, but I do not know / it is not defined where this import occurs. So there is no guarantee about the state of any variables at this point ..
But in the GS wiki about theme creation it does say that you can define a file functions.php to put in any custom functions that you can then call from your theme. It says that functions.php is then imported before the start of template output .. so you are then free to call any function defined in the file from the template.
So that is what I will do .. over the weekend … Declare a function in functions.php to concatenate all the pages into $content, and then call it instead of the normal get_page_content() from my template at a point where the content should go as normal and where variable $language will also be available. I will then still need to call get_page_content() to apply to the new $content any actions and filters from plugins as normal
Cheers Aldebaran
Posts: 210
Threads: 15
Joined: Feb 2013
how to add a default option to: show all pages
https://dl.dropboxusercontent.com/u/49983884/in/i18n/showallpages.jpg
i want always for all users do this (show all pages default - without a clicking to plus button") it's possible?
Posts: 120
Threads: 22
Joined: Dec 2015
2016-01-03, 05:29:31
(This post was last modified: 2016-01-03, 05:37:46 by jwzumwalt.)
I believe I have found a bug.
If your page name contains a underscore "_", the Custom URL (Slug): input box crashes after trying to save. If you have the underscore, returning to "options+" causes other input boxes to crash.
The workaround is change underscores to dashes "-".
The fix would be to figure out why it does not like underscores, or replace underscores with dashes before saving the page data.
Thanks for the hard work
Thanks,
jwzumwalt
(\__/)
(='.'=)
(")_(")
Posts: 1,928
Threads: 88
Joined: Apr 2010
i18n plugin uses this underscore "_" to determine the language
Posts: 2,094
Threads: 54
Joined: Jan 2011
I18N Version 3.3:- supports sorting by title in hierarchical pages view - "by title" and "hierarchical" buttons are now basically toggle buttons (@bensayers).
Posts: 1,928
Threads: 88
Joined: Apr 2010
mvlcek, you forgot to specify the version 3.3 of the file i18n_navigation.php
Posts: 2,094
Threads: 54
Joined: Jan 2011
(2016-02-16, 10:30:11)Oleg06 Wrote: mvlcek, you forgot to specify the version 3.3 of the file i18n_navigation.php
Thank you, corrected in 3.3.1
Posts: 48
Threads: 3
Joined: Feb 2016
Ok, it was just a mistake!
(I tried to update 3 times... )
Thx!
__
Contact me if you need a french translation file for your plugin.
Posts: 76
Threads: 7
Joined: Jun 2015
Hey, I looked around a little but couldn't find anything on it.
How would one go about using 2 separate Tlds/domains (helgesverre.no and helgesverre.com) to determine the language of the page, both domains should be pointing to the same CMS instance, but should display the content in different languages depending on which domain it is.
Any help with this would be appreciated
Posts: 185
Threads: 8
Joined: Apr 2012
@HelgeSverre what about plugin that will check domain name and define language / replace constant ?
|