?
Referenced as Duplicate of: # 17198
avatar fluctuate
fluctuate
26 Apr 2017

My Action: I did the update using the classic "Joomla Update" page.
Version: from 3.6.5 to 3.7
Installation method: writes files directly.

Problem
After update, the translation of the language fails, i see only the codes instead of the translation.
In fact i see the (ugly) string/code used by JText, e.g.: MOD_MENU_SYSTEM, JSTATUS rtc

Expected result

Actual result

System information (as much as possible)

Additional comments

Votes

# of Users Experiencing Issue
1/1
Average Importance Score
5.00

avatar fluctuate fluctuate - open - 26 Apr 2017
avatar joomla-cms-bot joomla-cms-bot - labeled - 26 Apr 2017
avatar brianteeman
brianteeman - comment - 26 Apr 2017

I have no idea what you mean by

My Action: I did the update using the classic "Joomla Update" page.

The only way you should update Joomla is using the Joomla Update link from the components menu

It sounds to me like you are missing the contents of the language folder

avatar franz-wohlkoenig franz-wohlkoenig - change - 26 Apr 2017
Priority Urgent Medium
avatar franz-wohlkoenig franz-wohlkoenig - change - 26 Apr 2017
Category com_joomlaupdate Language & Strings
avatar zero-24
zero-24 - comment - 26 Apr 2017

After update, the translation of the language fails, i see only the codes instead of the translation.
In fact i see the (ugly) string/code used by JText, e.g.: MOD_MENU_SYSTEM, JSTATUS rtc

Where? In a custom plugin? In the core? What happen if you enable language debug? Any errors shown?

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2017

Is the site using a custom language or the default english language?

avatar Jishek
Jishek - comment - 26 Apr 2017

Had same problem.
You have to edit file - "libraries/joomla/language/language.php"
and add on line 834

            $contents = file_get_contents($filename);
            $contents = str_replace('_QQ_', '"\""', $contents);
            $strings = @parse_ini_string($contents);

like it was in Joomla 3.6.5 (before update)
then translations are ok but figured other problem with time (article create time/modify)

avatar fluctuate
fluctuate - comment - 26 Apr 2017

@Jishek
Thank you, i added your snippet and now joomla translation works fine.
My problem is resolved.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/15587.

avatar brianteeman
brianteeman - comment - 26 Apr 2017

Modifying a core file without the changes being implemented in the core for everyone else is not a solution.

@jishek @fluctuate what language are you using

@infograf768 can you take a look at this please

avatar Jishek
Jishek - comment - 26 Apr 2017

@brianteeman I have multilang page: PL,EN,UA / PL Default

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2017

Are you using the latest language files for Joomla 3.7.0 version ?

avatar mbabker
mbabker - comment - 26 Apr 2017

There are invalid language files in your installation, see https://docs.joomla.org/J3.x:Changes_in_language_file_loading for more info.

avatar Jishek
Jishek - comment - 26 Apr 2017

of course

avatar mbabker
mbabker - comment - 26 Apr 2017

If it works with the 3.6.5 code but not the 3.7 code then the INI files are broken and the additional processing that we did before running the file contents through the INI processor hid the fact that the file(s) had parse errors.

avatar fluctuate
fluctuate - comment - 26 Apr 2017

My site is set on italian Language, it's not a multiling website.
The problem was global (not only on a specific component or plugin ),
Furthermore, the problem was both on back end and on front end.
I can not be more specific than that.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/15587.
avatar fluctuate
fluctuate - comment - 26 Apr 2017

Yes, i'm using the latest language files for Joomla 3.7.0 version.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/15587.

avatar Jishek
Jishek - comment - 26 Apr 2017

The problem with files are when someone are using brackets.
My Lang files looks good - checked by parse_ini_file function.
Anyway broken translations are missing from official Lang files so should be good because are updated and not modified by me.
If one Lang file is broken then one file is not loaded and rest is.
Correct me if I am wrong.

avatar MartijnMaandag
MartijnMaandag - comment - 26 Apr 2017

I can confirm this.
I am usinng the Dutch language in the backend. When I updated into 3.7 the Joomla Update screen turns English and stays English other screens are good.

I will investigate further.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/15587.

avatar MartijnMaandag
MartijnMaandag - comment - 26 Apr 2017

When you update the language-pack from 3.6.5 into 3.7.0 it is solved (in Dutch).


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/15587.

avatar mickelb
mickelb - comment - 26 Apr 2017

I have exactly the same problem. I upgraded using the Joomla Update process from 3.6.5 so clearly there is a problem with the process in respect of language strings and overrides. No one has clearly said, in terms that don't need professional coding or PHP skills, how to replace or update an existing language pack, in my case en-GB.

So some simple steps please on where to get the relevant files and how to update over a current build?

The code hack above works fine as a workaround but I would rather have a standard build.

avatar cybersholt
cybersholt - comment - 26 Apr 2017

I've got the same issue, Joomla 3.6.5 to 3.7 using com_joomlaupdate, the problem is present in both the backend and frontend of the site, I've not had time to dig further into the issue.

image

image

avatar hakanara
hakanara - comment - 26 Apr 2017

I have exactly the same issue. My administration area was in English. With the update, the English language file is now 3.7 as well. But I only see the language strings, not the text. I have reinstalled Joomla but nothing changed.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/15587.

avatar hakanara
hakanara - comment - 26 Apr 2017

I have a language override and there are two language override with " (quotes). I've deleted all the overrides but the issue stil continues.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/15587.

avatar hakanara
hakanara - comment - 26 Apr 2017

I have uninstalled my current Turkish language 3.6.2 files both for frontend and backend. Now the whole site is on core English language files and the issue still continues.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/15587.

avatar ManuelGut
ManuelGut - comment - 26 Apr 2017

I have the same problem. Also with Update und fresh clean install with full stable J 3.7

My trick: I disable parse_ini_file in php.

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

I have the same problem. It is actual and when installing nulled distr of 3.7 and when updating from 3.6.5 too. parse_ini_file in php enabled.

avatar infograf768
infograf768 - comment - 27 Apr 2017

It is pretty hard to help when it seems that all the situations here are not similar (parse_ini_file disabled in some cases).

Let's make a first test. Please do the following:
Set the default administrator language to en-GB (The super Admin should also have en-GB as default)

Go to administrator/index.php?option=com_config , system tab

Enable Debug Language
Then go to bottom of the page and display "Language files Loaded"

Then post the screenshots of the result:
lang_parsing

avatar Jishek
Jishek - comment - 27 Apr 2017

backend (where everything is fine)
backend
frontend (where is not)
frontend

even core language files (updated and not modified) are not loaded on frontend

avatar infograf768
infograf768 - comment - 27 Apr 2017

Do you use a default Core Joomla template like Protostar in frontend?
If not please test with default template.

avatar bellu
bellu - comment - 27 Apr 2017

In the Backend the lang files aren't loaded.
I have the same issue also with a fresh Joomla 3.7.0 installation.

download

avatar Jishek
Jishek - comment - 27 Apr 2017

same on beez template
3

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

All templates are from Joomla installer, not custom, used official nulled package from jooml.org website.

avatar bellu
bellu - comment - 27 Apr 2017

@infograf768 I've tested with Protostar Theme and Beez3, nothing is changed in the backend.
Also the default themes can't load the translation in frontend.

avatar mickelb
mickelb - comment - 27 Apr 2017

en-GB is my only installed language. Our server is running PHP 5.6.30 and SQL 5.6.35. We cannot update to PHP 7 at this time due to other services running on the server.

Debug screenshots:
language_debug_p1
language_debug_p2
language_debug_p3
language_debug_p4
language_debug_p5

avatar Jishek
Jishek - comment - 27 Apr 2017

shouldn't but maybe php version is the issue
my is 5.4.45

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

My is 5.6.13

avatar bellu
bellu - comment - 27 Apr 2017

@Jishek i've tested with 5.4.27 and 5.6.15, and there is no difference between these versions. Same issues about the translations.

avatar infograf768
infograf768 - comment - 27 Apr 2017

I test on php 5.4.4, so that is not the issue.

As I said earlier, it looks like the issues are different for each of you.
for @Jis all is fine on back-end. Files not loaded in frontend.
for @mickelb all files loaded but not parsed (Have you checked that parse_ini is implemented for your PHP? It should have as it was also necessary for 3.6.5...)
for @Vadimes89 no screenshot provided to see which files are loaded or not.

Another question: is the admin login screen translated or not, i.e.
screen shot 2017-04-27 at 10 36 54

avatar Jishek
Jishek - comment - 27 Apr 2017

and for me ? )

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

@infograf768 , Admin login screen is not translated too

avatar sessizsen
sessizsen - comment - 27 Apr 2017

Me too; Admin login screen is not translated too

avatar infograf768
infograf768 - comment - 27 Apr 2017

@Jishek
oops, mistaken @Bellu with you

avatar bellu
bellu - comment - 27 Apr 2017

@infograf768 My apologize, i haven't explained well my situation.

After updating from 3.6.5 both frontend and backend translations are missing.
Switching to the default themes in frontend doesn't change nothing.

On the same server i tried to install a fresh new Joomla 3.7.0, also in this case the translations are missing.

Admin login screen has the same problem.

login-admin

avatar AlexRed
AlexRed - comment - 27 Apr 2017

maybe a parse_ini_file() availability problem in the server ?

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

@AlexRed if it is a problem with parse_ini_file() module, why everuthing is fine with previous versions of CMS? Or only since 3.7, there is a new way to load ini files?

avatar brianteeman
brianteeman - comment - 27 Apr 2017

@infograf768 @AlexRed perhaps this comment regarding transifex is relevant
#15378 (comment)

avatar AlexRed
AlexRed - comment - 27 Apr 2017

but for the Joomla eng core language file don't use transifex

avatar infograf768
infograf768 - comment - 27 Apr 2017

Folks, please look at your php.ini for
disable_functions= "

avatar infograf768
infograf768 - comment - 27 Apr 2017

And we were already using parse_ini in 3.6.5 indeed.

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

@infograf768 yep, and with 3.6.5 there are no any same problem. Problem only with Joomla 3.7

avatar AlexRed
AlexRed - comment - 27 Apr 2017

parse_ini_string() yes in 3.6.5, but also parse_ini_file() ?

avatar mickelb
mickelb - comment - 27 Apr 2017

My PHP INI:
disable_functions =exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

@AlexRed it sounds like the solution. because parse_ini_file() is disabled on my hosting. But i need a time for testing, because my hosting support will make it for long time.

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

@mickelb please, remove parse_ini_file from php.ini and try to check.

avatar mickelb
mickelb - comment - 27 Apr 2017

Just on it.

avatar mickelb
mickelb - comment - 27 Apr 2017

That seems to have been the problem on my site.

avatar infograf768
infograf768 - comment - 27 Apr 2017

OK, that explains then when issues are both in front and back-end.
It does not explain the OK on back-end and error in frontend for @Jishek

avatar infograf768
infograf768 - comment - 27 Apr 2017

and ? to @AlexRed as indeed we only use parse_ini_string in 3.6.x

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

@infograf768 you are right, but it is need to test anywhere, will it fix problem or not, I can test and report only in 2 hours.

avatar AlexRed
AlexRed - comment - 27 Apr 2017

yes, I test it and I can confirm the b/c break, now in 3.7.0 if disable_functions =parse_ini_file no load the language file, it is ok in Joomla 3.6.5

avatar MartijnMaandag
MartijnMaandag - comment - 27 Apr 2017

I found this:
Line 39 class
Joomla 3.6.5: COM_JOOMLAUPDATE_VIEW_DEFAULT_NO_LIVE_UPDATE_DESC="Er is een nieuwe versie van de Joomla Update component die eerst geïnstalleerd moet worden. <a class=\"_QQ_"alert-link\"_QQ_" href="_QQ_"index.php?option=com_installer&view=update"_QQ_">Klik hier om de component te updaten</a>."
Joomla 3.7.0: COM_JOOMLAUPDATE_VIEW_DEFAULT_NO_LIVE_UPDATE_DESC="Er is een nieuwe versie van de Joomla Update component die eerst geïnstalleerd moet worden. <a class=\"alert-link\" href="_QQ_"index.php?option=com_installer&view=update"_QQ_">Klik hier om de component te updaten</a>."
Line 67 class and href

Joomla 3.6.5: COM_JOOMLAUPDATE_VIEW_DEFAULT_UPLOAD_INTRO="U kunt deze functie gebruiken om Joomla bij te werken als uw server zich achter een firewall bevindt of op geen andere manier verbinding kan maken met de updateservers. Download eerst het Joomla <em>upgradepakket</em> in ZIP-formaat van <a class=\"_QQ_"alert-link\"_QQ_" href=\"_QQ_"%s\"_QQ_"> de officiële Joomla downloadpagina</a>. Gebruik daarna onderstaande velden om het te uploaden en installeren."
Joomla 3.7.0: COM_JOOMLAUPDATE_VIEW_DEFAULT_UPLOAD_INTRO="U kunt deze functie gebruiken om Joomla bij te werken als uw server zich achter een firewall bevindt of op geen andere manier verbinding kan maken met de updateservers. Download eerst het Joomla <em>upgradepakket</em> in ZIP-formaat van <a class=\"alert-link\" href=\"%s\"> de officiële Joomla downloadpagina</a>. Gebruik daarna onderstaande velden om het te uploaden en installeren."
3.7 is not compatble with the use off "QQ"
This is why my update screen is in English ans maybe a lot off other problems.

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

The recommendation to ban parse_ini_file() in disable_function is an old one, from when safe mode was still a thing. It's no more dangerous than any other PHP function that reads from a file. A hosting provider that's banning parse_ini_file() now (especially after leaving file_get_contents() open) is misguided, operating from old advice that is no longer valid, and was of dubious benefit even when it was valid.

The correct solution to this is use a decent webhost who understands real world security, and doesn't rely on disabling core parts of the PHP programming language under the guise of "security"

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

I can confirm that a git clone of joomla-cms staging, with disable_functions=parse_ini_file causes a standard installation (right out of the box) to fail translating the string placeholders - now we have identified the root cause...

There is a bug in getIniParserAvailability that doesnt check for parse_ini_file when the comments say it does. If that bug was fixed, this would stop new installs being installed at the installation stage if parse_ini_file is disabled. But that would do nothing for the millions of sites already installed that have parse_ini_file disabled.

now to decide if:

  1. Joomla wants to mandate a minimum system requirement that parse_ini_file is not disabled (https://downloads.joomla.org/technical-requirements)

  2. Improvements should be made to support hosts that dont meet the (new) minimum system requirements (E.g. have disabled parse_ini_file)

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

Joomla already has a pure PHP implmentation of parse_ini_file in

we just need to expose that somehow if parse_ini_file is disabled by the host... Im not sure the best place to do that...

Note the explanation in that class:

/**
 * A utility class to parse INI files. This monstrosity is only required because some impossibly misguided individuals
 * who misrepresent themselves as hosts have disabled PHP's parse_ini_file() function for "security reasons". Apparently
 * their blatant ignorance doesn't allow them to discern between the innocuous parse_ini_file and the _potentially_
 * dangerous ini_set functions, leading them to disable the former and let the latter enabled. In other words, THIS
 * CLASS IS HERE TO FIX STUPID.
 */
avatar AlexRed
AlexRed - comment - 27 Apr 2017

related to #15591 ?

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

Everyone, please test this PR #15620

If you want to manually quickly test then using FTP change the file

libraries/joomla/language/language.php

Line 833

And change this:

$strings = @parse_ini_file($filename);

To be this:

$strings = FOFUtilsIniParser::parse_ini_file($filename, true);

avatar mickelb
mickelb - comment - 27 Apr 2017

You may be unfairly pointing the finger at hosts. It was in the Joomla PHP INI file that I had the disable
"parse_ini_file" and that source was the original clean Joomla 3.6.5 build. Nothing to do with our host.

avatar mickelb
mickelb - comment - 27 Apr 2017

But anyway, good to see this has been resolved quickly.

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

Im sorry - you are wrong. This is purely a crap webhost issue.

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

I have enabled parse_ini_file and problem successfully solved. Thanks everyone for help!

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

I have enabled parse_ini_file and problem successfully solved. Thanks everyone for help!

That is the best solution :) While you are there also remove all the other disable_functions in your PHP.ini :)

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

@PhilETaylor - Thank you! But enabling all php functions is not a good idea, some of them are disabled for security reason)

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

@Vadimes89 again, a misconception purported by insecure web hosts with old, out of date mentalities.

Its 2017, you should not be disabling standard features of a programming language in the name of "security". You should be writing and distributing secure code. If a hacker can call a PHP function, then you are already compromised, disabling functions is not going to help you.

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

@PhilETaylor - strongly not agree with you! When we talking about Joomla and each other open-source CMS, we need to make additional protect on the web-server because, Joomla and most of components are compromised a priori. If you will develop ideal free CMS and modules for it , that can not be hacked, I will use it and enable all functions and modules. But nowadays I can see that each platform, free CMS or secret government system has vulnerabilities and can be hacked soon. So, ideal site for you - html page without any functions and styles)))

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

If you are hacked, then disabling core parts of PHP is NOT going to help you. Period.

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

So, if you will enable most unsafe PHP functions, you can be hacked with stronger probability)) Great logic!

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

Absolute rubbish. If a hacker can run PHP functions, you are already hacked. Its clear you don't understand security, so I'll not hijack this thread any more in an effort to educate you.

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

@PhilETaylor, I think that you are not a php developer at all, because if it will be so, you should be able to know that besides your code threads, there are vulnerabilities of php server, MySQL, web-hosting control panel, and even viruses on developer's PC. And after you was hacked, it is possible to create any maleficent scripts on your hosting, and one way if it will be botnet client (using enabled on server phmail, that can help to overload server), but it can be for example full server hack with full deleting of your site, DB and backups. And so, if you will be so dimwitted that you give to hackers all existing functions, probably it will second scenario. And if you will disable some functions, it can be f.e. that hacker scripts will be created but they will be safe for web-server and your sitr. Thats my own opinion, based on 10 years of web-development experience. Good luck)

avatar PhilETaylor
PhilETaylor - comment - 27 Apr 2017

I think that you are not a php developer at all

LMAO...

avatar Radek-Suski
Radek-Suski - comment - 27 Apr 2017

There is absolutely no reason for disabling parse_ini_file. It just stupid. It's a mentality of typical windows users as INI files are system configuration files in windows (or were)
And huge laugh at @PhilETaylor not being a developer :D

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

If to call each person who know html a developer, I agree with you!

avatar Vadimes89
Vadimes89 - comment - 27 Apr 2017

And sorry guys, but thinking that anybody can create ideal safe web code - anyway its a great folly!

avatar brianteeman
brianteeman - comment - 27 Apr 2017

Sadly.i have had to lock.this conversation as it had degenerated to personal attacks.and.is now massively off topic

avatar infograf768
infograf768 - comment - 27 Apr 2017

@MartijnMaandag
Nope, your issue is with Crowdin.

We are now discussing another solution with maintainers

avatar joomla-cms-bot joomla-cms-bot - change - 27 Apr 2017
Title
Language Files: Problem after update to 3.7
Problem after update to 3.7
avatar joomla-cms-bot joomla-cms-bot - edited - 27 Apr 2017
avatar franz-wohlkoenig franz-wohlkoenig - change - 28 Apr 2017
Title
Problem after update to 3.7
Language Files: Problem after update to 3.7
avatar franz-wohlkoenig franz-wohlkoenig - change - 28 Apr 2017
Title
Problem after update to 3.7
Language Files: Problem after update to 3.7
Build 3.6.5 3.7.0
avatar brianteeman
brianteeman - comment - 28 Apr 2017

Please test #15620

avatar brianteeman brianteeman - change - 28 Apr 2017
Status New Closed
Closed_Date 0000-00-00 00:00:00 2017-04-28 07:15:29
Closed_By brianteeman
avatar brianteeman brianteeman - close - 28 Apr 2017

Add a Comment

Login with GitHub to post a comment