Hello guys, I'm getting this error when I try to do anything in the profile settings, like changing password, or browsing to "preferences" or "signature":

PHP Fatal error: Uncaught ArgumentCountError: 3 arguments are required, 2 given in /var/www/html/osticket/include/staff/profile.inc.php:229\nStack trace:\n#0/var/www/html/osticket/include/staff/profile.inc.php(229): sprintf()\n#1 /var/www/html/osticket/scp/profile.php(65): require('...')\n#2 {main}\n thrown in /var/www/html/osticket/include/staff/profile.inc.php on line 229, referer:

The funny thing is that If I change the language to English, it works fine... but we need it to be in Spanish and I find it annoying switching languages all the time for everyone just to change someone's password.

Ubuntu 22.04
My php version is: 8.0.18
Mysql version: 8.0.29

Everything else works fine...
Is there any way to fix this?
Thanks.

    AdrianC

    I will have to install another language to see but using English I cannot replicate the issue.

    Cheers.

    Thanks for taking the time to look into this.

    With English it works fine, the problem appears when using translations I guess, It happens with Spanish which I'm using for example.

    6 days later

    Correct, the same thing happens to me with the Spanish language

    4 days later

    I can confirm this is an issue with the es_ES.phar (Spanish β€” Spain) language pack in all versions of 1.16.x.

    When that pack is installed as a secondary language, and the currently logged in user has selected it as their default language, the Profile page no longer works as expected.

    For example, the Preferences and Signature tabs are not clickable, and the user cannot change their password or configure 2FA options.

    Fortunately one can go back to Admin Panel> System and disable the Spanish pack. Once the currently logged in user is using English again (or any other language, as far as I can tell) everything works as expected.

    2 months later

    algonco

    I still need to look into this. It’s on my list of things to review during our next cooldown.

    Cheers.

    22 days later

    @AdrianC @pablopol24 @stevland @algonco

    I've finally found the issue. So the issue is that whomever accepted the translation for the Every %d minutes string in Spain Spanish language didn't review it well as it had an errant % character (ie. cada %d %minutos). I have accepted the correct version of Cada %d minutos so this issue will be addressed once we release new language pack builds (not set date for this at this time).

    Cheers.

      Hi:
      I modified and repacked the es_ES phar file, with the correction mentioned by @KevinTheJedi but the system does not allow to upload a PHAR file, so it is in ZIP format, just uncompress it.
      If you want to see the PAR file contents, you can use https://phar.scer.io/; seems legit enough and it does work.

      ** attachment removed by admin

        cavp76

        Please do not post custom builds of language packs. It is not verified and could cause issues. Providing instructions on how to accomplish what you did is the preferred option.

        Cheers.

          KevinTheJedi OK Kevin, sorry for the upload... the site I posted above allows anyone to decompress and compress a PHAR file, so it becomes very easy to correct that mistake you identified. Hope anyone with some issues can correct and use their own files.
          Best regards

          Just an update: there's an additional problem with the Spanish es_ES phar... even with the correction noted by Kevin it continues without working correctly as per @stevland and others confirmed... we'll just have to wait for the official correction.

          20 days later
          25 days later
          3 months later

          Hello, using es_AR.phar for me is not an option (we are using es_ES localization).
          I have tried to correct the es_ES.phar doing the following:

          • unpacking it with: php -r '$phar = new Phar("es_ES_new.phar"); $phar->extractTo("./temp/");'
          • editing the wrong file
          • packing it again with: php -r '$phar = new Phar("es_ES_mod.phar"); $phar->buildFromDirectory("./temp/");'
            But it seems .phar created is not good enough because it is not loaded. Am I doing something wrong?

            jdiaz

            You cannot repackage language packs appropriately by doing just that. We have a special packager that does some other things. You can look at the packager code on Github (within the core repo) and see how it packages language packs.

            Cheers.