osTicket not working correctly with Dutch Language Pack.

Created on 23 Jun 2017  ·  56Comments  ·  Source: osTicket/osTicket

Description

When using the Dutch Language pack, I am unable to open sub-tabs under admin panel > settings >any category. Also, the categorys of which i cant open the tabs, are missing the save settings/reset button.

Steps to Reproduce

  1. Start a fresh install of osTicket v1.10, place nl.phar inside i18n folder
  2. Go to install.php, choose Dutch from the language dropdown menu
  3. Install
  4. Go to admin panel
  5. Cant open tabs and some save settings/reset buttons are missing.

Expected behavior: [What you expected to happen]
Able to open the tab and configure settings.

Actual behavior: [What actually happened]
Nothing happens when you click the tab.

Versions

osTicket v1.10 (901e5ea)
PHP 7.0.18-0ubuntu0.16.04.1
MySQL 5.7.18
Webserver Apache/2.4.18 (Ubuntu)

Using Windows 10, tried Chrome, and Internet Explorer on multiple machines. Also tried the installations on ubuntu 16.04 using apache and php7.0, and on XAMPP which both have the same results.

logs

this DB error log is in my osticket but im not sure if it has anything to do with my problem.
DB Error #1146 [SELECT A4.staff_idASlock__staff_id, A1.staff_idASstaff_id, A1.isoverdueASisoverdue, A1.team_idASteam_id, A1.ticket_idASticket_id, A1.numberASnumber, A2.subjectAScdata__subject, A6.addressASuser__default_email__address, A1.sourceASsource, A3.priority_colorAScdata__:priority__priority_color, A3.priority_descAScdata__:priority__priority_desc, A1.status_idASstatus_id, A7.nameASstatus__name, A7.stateASstatus__state, A1.dept_idASdept_id, A8.nameASdept__name, A5.nameASuser__name, A1.lastupdateASlastupdate, A1.isansweredASisanswered, B0.firstnameASstaff__firstname, B0.lastnameASstaff__lastname, B1.nameASteam__name, (SELECT COUNT(R0.id) AScountFROMost_threadQ7 JOINost_ticketQ8 ON (Q7.object_type= 'T' AND Q7.object_id= Q8.ticket_id) LEFT JOINost_thread_collaboratorR0 ON (Q7.id= R0.thread_id) WHERE Q8.ticket_id= A1.ticket_id) AS collab_count, (SELECT COUNT(R1.id) AScountFROMost_threadQ7 JOINost_ticketQ8 ON (Q7.object_type= 'T' AND Q7.object_id= Q8.ticket_id) LEFT JOINost_thread_entryR0 ON (Q7.id= R0.thread_id) LEFT JOINost_attachmentR1 ON (R1.type= 'H' AND R0.id= R1.object_id) WHERE Q8.ticket_id= A1.ticket_idAND R1.inline= 0) AS attachment_count, (SELECT COUNT(R0.id) AScountFROMost_threadQ7 JOINost_ticketQ8 ON (Q7.object_type= 'T' AND Q7.object_id= Q8.ticket_id) LEFT JOINost_thread_entryR0 ON (Q7.id= R0.thread_id) WHERE Q8.ticket_id= A1.ticket_idAND NOT R0.flags& 4 != 0) AS thread_count FROMost_ticketA1 LEFT JOINost_ticket__cdataA2 ON (A1.ticket_id= A2.ticket_id) LEFT JOINost_ticket_priorityA3 ON (A2.priority= A3.priority_id) LEFT JOINost_lockA4 ON (A1.lock_id= A4.lock_idAND A4.expire> NOW()) JOINost_userA5 ON (A1.user_id= A5.id) LEFT JOINost_user_emailA6 ON (A5.default_email_id= A6.id) JOINost_ticket_statusA7 ON (A1.status_id= A7.id) JOINost_departmentA8 ON (A1.dept_id= A8.id) LEFT JOINost_staffB0 ON (A1.staff_id= B0.staff_id) LEFT JOINost_teamB1 ON (A1.team_id= B1.team_id) WHERE A1.ticket_idIN (SELECT A1.ticket_idFROMost_ticketA1 JOINost_ticket_statusA2 ON (A1.status_id= A2.id) WHERE A2.state= 'open' AND ((A2.state= 'open' AND A1.staff_id= 1) OR A1.dept_idIN ('1'))) GROUP BY A4.staff_id, A1.staff_id, A1.isoverdue, A1.team_id, A1.ticket_id, A1.number, A2.subject, A6.address, A1.source, A3.priority_color, A3.priority_desc, A1.status_id, A7.name, A7.state, A1.dept_id, A8.name, A5.name, A1.lastupdate, A1.isanswered, B0.firstname, B0.lastname, B1.nameORDER BY A3.priority_urgencyASC, A1.lastupdate` DESC] Table 'osticket_db1.ost_ticket__cdata' doesn't exist

---- Backtrace ----
#0 (root)/include/mysqli.php(204): osTicket->logDBError('DB Error #1146', '[SELECT A4.sta...') #1 (root)/include/class.orm.php(3133): db_query('SELECT A4.staf...', true, true)
#2 (root)/include/class.orm.php(3180): MySqlExecutor->execute()
#3 (root)/include/class.orm.php(1865): MySqlExecutor->getArray()
#4 (root)/include/class.orm.php(1815): HashArrayIterator->{closure}()
#5 (root)/include/class.orm.php(1794): CallbackSimpleIterator->next()
#6 (root)/include/class.orm.php(1803): CallbackSimpleIterator->rewind()
#7 (root)/include/class.orm.php(1463): CallbackSimpleIterator->valid()
#8 (root)/include/class.orm.php(1480): CachedResultSet->fillTo(9223372036854775807)
#9 (root)/include/class.orm.php(1489): CachedResultSet->asArray()
#10 (root)/include/staff/tickets.inc.php(506): CachedResultSet->getIterator()
#11 (root)/scp/tickets.php(492): require_once('/var/www/html/o...')
#12 {main}

Logdatum: 06/23/2017 11:59:59 AM IP-adres: 192.168.1.101`

All 56 comments

Please downgrade MySQL to any version pre 5.7 and see if that helps.
Also a lot of people on the forums have reported issues with running XAMPP I presume its something to do with how they configure things. I always recommend that people install their own software rather than have someone else package it together and install that when it comes to osTicket..

I appreciate your reply, however the exact same error occurs using our own ubuntu 16.04 server. I can't downgrade MySQL due to other applications running on the server.

Then I guess that I cannot assist in troubleshooting this then. Maybe one of the devs will be able to.

Yea I just installed the Dutch Language Pack on my v1.10 install on a CentOS server and it's working just fine. Please post a screenshot of Admin Panel > Dashboard > Information.

Try installing PHP's intl extension, restart your apache, reinstall the language pack and retry.

Ubuntu (PHP 7.0):

$ sudo apt-get install php7.0-intl

Just did. Nothing changed sadly..
Thank you.

Are you getting any errors in your PHP or Apache error logs when you click a tab that won't work?

Where are those logs located? Using ubuntu 16.04 with php7 and apache2

Looks like this is appearing in /var/log/apache2/error.log when I click on the not-working tabs.

[Fri Jun 23 16:16:58.298932 2017] [:error] [pid 21861] [client 192.168.1.101:22437] PHP Warning: Declaration of AssignmentForm::render($options) should be compatible with Form::render($staff = true, $title = false, $options = Array) in$ [Fri Jun 23 16:16:58.298985 2017] [:error] [pid 21861] [client 192.168.1.101:22437] PHP Warning: Declaration of TransferForm::render($options) should be compatible with Form::render($staff = true, $title = false, $options = Array) in /$ [Fri Jun 23 16:17:01.829197 2017] [:error] [pid 21861] [client 192.168.1.101:22437] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$ [Fri Jun 23 16:17:09.998825 2017] [:error] [pid 21870] [client 192.168.1.101:22440] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$ [Fri Jun 23 16:17:12.975869 2017] [:error] [pid 21870] [client 192.168.1.101:22440] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$ [Fri Jun 23 16:20:18.783921 2017] [:error] [pid 21865] [client 192.168.1.101:22567] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$ [Fri Jun 23 16:20:23.018114 2017] [:error] [pid 21871] [client 192.168.1.101:22568] PHP Warning: Declaration of AssignmentForm::render($options) should be compatible with Form::render($staff = true, $title = false, $options = Array) in$ [Fri Jun 23 16:20:23.018160 2017] [:error] [pid 21871] [client 192.168.1.101:22568] PHP Warning: Declaration of TransferForm::render($options) should be compatible with Form::render($staff = true, $title = false, $options = Array) in /$ [Fri Jun 23 16:20:23.854058 2017] [:error] [pid 21872] [client 192.168.1.101:22569] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$ [Fri Jun 23 16:20:24.428422 2017] [:error] [pid 21872] [client 192.168.1.101:22569] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$ [Fri Jun 23 16:20:24.964045 2017] [:error] [pid 21872] [client 192.168.1.101:22569] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$ [Fri Jun 23 16:20:25.363825 2017] [:error] [pid 21872] [client 192.168.1.101:22569] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$ [Fri Jun 23 16:20:25.628434 2017] [:error] [pid 21872] [client 192.168.1.101:22569] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$ [Fri Jun 23 16:20:25.860374 2017] [:error] [pid 21872] [client 192.168.1.101:22569] PHP Fatal error: Uncaught InvalidArgumentException: List indices should be integers in /var/www/html/osticket2/include/class.util.php:149\nStack trace:$

You are downloading the latest language pack from http://osticket.com/download, right?

Yes I am.

Also a weird thing I noticed is that if I prepare a full clean install, put the nl.phar inside the i18n folder, open osticket/setup/install.php and then I see English and Dutch in the dropdown menu. If I choose English, it still installs in Dutch but not everything is translated. stuff like priorities, help topics, annotations and templates are not translated, but most pages are dutch. The tabs are working then. Very weird.

Wait....you are _installing_ osTicket under a different language?? Or just installing a new language on osTicket?

I want osTicket to be fully in Dutch. I am installing osTicket with the Dutch language pack.

That's your issue. You have to install osTicket in English with no language packs THEN install the language pack after you install and configure osTicket.

Also, if I install osTicket in Dutch, absolutely everything is translated. When I use language pack afterwards basically nothing is.

After you install osTicket, you install the language pack. After the install of the pack you go to Admin Panel > Settings > System and change Primary Language to Dutch. If it saves and nothing is translated clear all your cache and reload the page. Now your whole system will be in Dutch 😄

@JediKev previously JAred has posted saying that if people want to use a language pack they should install it at the time of installation and select it because there were some things that were not being handled gracefully (aka working right) when it was installed after the fact if they wanted it to be the Default language out of the box.

I did not know this, where did he post this? I've heard nothing but issues when installing with a language pack lol

@JediKev @ntozier When I do it as you said JediKev. Not everything is translated. Things such as priority levels, help topics and stuff are not translated. https://www.screencast.com/t/rkaB1ySf6

And when I do it @ntozier way, the tabs dont work. Should I just live with the fact that not everything is translated?

Okay, so I just installed a new osTicket v1.10 with the Dutch language chosen and everything is translated/working fine...I would suggest trying to downgrade PHP to 5.6 or MySQL to pre-5.7.
My PHP: version 5.6
My MariaDB: version 5.5.50

EDIT: Did not check properly, was in fact not working correctly.

I could try downgading PHP. I can't modify the MySQL installation sadly.

Please do that and get back to us!

I can't modify the MySQL installation sadly.

I saw that previously, I just mentioned it because that's the only two suggestions I have right now.

Apparently PHP5 is not available for Ubuntu 16.04

It is available for 16.04, you just have to add a repository that has it first. You can google "how to install PHP 5.6 on Ubuntu 16.04" and many sites will pop up. Make sure you add a trusted and popular repository for best results.

Alright I just installed this on a 16.04 ubuntu virtual machine,different workstation, all fresh downloads and another network (im home now), with the following settings: https://gyazo.com/bfa5bd4350e68d3fc3c9b059e7aac1c7

and the problem still persists. ugh...

I'll have to install Ubuntu and test then. All is fine on CentOS.

Please try and let me know! it wont take long for you, it took me like 20 mins to set this up at home to test it. let me know! I cant wait to know whats causing this

Okay so after some testing I have concluded the following:

  • Ubuntu 16.04 (or CentOS 7) osTicket v1.10 installed in English works just fine, everything is perfect.
  • Ubuntu 16.04 (or CentOS 7) osTicket v1.10 installed in Dutch (or any other language, also tested in Norwegian) messes up a lot. Some forms/fields are not generated, some buttons are non-functional, and much much more.

I need to see if this is a PHP issue or an osTicket installer issue.

Ubuntu 16.04 (English):
screen shot 2017-06-23 at 15 40 23
screen shot 2017-06-23 at 15 55 49

Ubuntu 16.04 (Dutch):
screen shot 2017-06-23 at 15 40 45
screen shot 2017-06-23 at 15 56 07

CentOS 7 (Dutch):
screen shot 2017-06-23 at 16 06 33
screen shot 2017-06-23 at 16 06 54

Okay, but if I want to set up a Dutch ticket system I'm better off choosing something else then osticket for now? Any suggestions?

No I would use osTicket. It'd be a little bit of a manual process to be fully translated but I think you'd love the system once completed. I would install in English, install language pack, then translate every form, template, help topic and system page (Admin Panel > Manage > Pages) that isn't translated. Once a fix is out you can reinstall in Dutch and import your old data! I apologize that the different language install is borked right now.

Alright, how does the importing work and when do you estimate a fix?

I did this in Portuguese, didn't know that I could install already translated. In an hour, maybe less, it was all translated. worth it

@Bram0194 - importing is easy, you'll dump the data from the old database via MySQL dump command and then import the dump into the new database via MySQL import command. I don't have an estimated fix date as this will take a while to debug and sort through.

@gabrielmsf - That's great to hear!

@gabrielmsf you mean you did the manual translating of everything that failed to translate?

@jedikev alright. I thought translated data was installed in the MySQL database too, or is that the case? Can u be more detailed? I'd love to understand the process. Thanks so much

@Bram0194 yeah, it´s not that much...

@gabrielmsf ok! Did you translate the ticket priority levels too for example via mysql database?

@JediKev alright. I thought translated data was installed in the MySQL database too, or is that the case? Can u be more detailed? I'd love to understand the process. Thanks so much

When you install in English then translate afterwards, _most_ non-translated data is data in the database. Once you translate everything manually (Help Topics, Templates, etc.), all data in the db will be translated. Once a fix is out you reinstall in Dutch then import all your old data to the new Dutch system. Since your data was translated previously it will remain translated and since you installed in Dutch the entire system will be in Dutch. Does that make sense?

It does. I get that some of my translation will be a little different than what the fixed translation will be like. The translation pack might use some dutch words a little different than I do. Example: he might translate "Normaal" into "Normal" and I could use "Gemiddeld" instead. Will this be some kind if problem that will cause conflicts or anything like that?

Example of manual translate: osticketdb > ost_priority (i think thats what the table is called) > priority_desc. I change High to Hoog and it will be fine? Or do I need to change something else than the "priority_desc"? I tried this yesterday and when I selected English language pack in settings again, the manual translated words were still dutch.

Sorry if im confusing @JediKev

@greezybacon @rayfoss Hi guys, could anyone give me some advice on how to proceed with this? I'd love to keep using osticket.

@Bram0194 You'll be happy to know that we have finally found a fix. I have been looking through so many files and functions over the past few weeks and realized that the files downloaded from Crowdin are not formatted correctly. With incorrectly formatted files the installation script can't read them properly and it freaks out. We should be updating the files very soon and I'll let you know when we do!

Cheers.

Hi!
I'm about to set up a site in "swedish only" and would love to see working non english installation work :)
@JediKev: Any update available on the statement "We should be updating the files very soon" ?

@Trebornide still waiting. Will post here when I have updates.

Copying without comma “,” before FROM to MySQL CLI and run make my day.

So you found what's the problem a year ago and the bug is still not resolved?

Is there a workaround? Installing in english and changing the language after is not because the in-database data still in english.

Is it fixed in 1.11-rc? I'm willing to use that version if it is fixed. Where can I download the language pack for this version?

@ohmer1

Not fixed yet...we've been busy addressing much bigger issues and doing a whole lot of other things. Will revisit this in time. Stay tuned!

Cheers.

Pleased to see this issue comimg to life again. As long as it is not fixed we will have to stick to a simple shared mail-box. Sigh... Pls let us in the non-english world in to use OSTicket in our native language again :)

@Trebornide

There is a workaround already posted...simply install osTicket in English then install the language pack afterwards...then you can simply generate all email templates in the chosen language and everything should be translated...what's not translated you can translate yourself as the code is free and open source.

Cheers.

Can you say what's wrong with the Crowdin files? Maybe I could manually fix them?

@ohmer1

Changed formatting. We are looking into changing the way we read the format and/or changing the format of the files.

Cheers.

Is there a way I can help by contributing some code?

Was this page helpful?
0 / 5 - 0 ratings