Skip to content

Anonymous pages (login page and password-protected public share page) are always displayed in English #41618

@KarstenS123

Description

@KarstenS123

Summary

Anonymous pages (login page and password-protected public share page) are always displayed in English although the browser sends Accept-Language: de-DE and German translations are present.

Authenticated pages are displayed in German as expected.

Steps to reproduce

  1. Install ownCloud Server 10.16.2 Community Edition.
  2. Configure browser language to German (Accept-Language: de-DE,de;q=0.9).
  3. Open the login page (/login) or a password-protected public share link.
  4. Observe the displayed language.

Expected behaviour

Anonymous pages should use the browser language and display German translations.

Examples:

  • "Username or email" → "Benutzername oder E-Mail"
  • "Password" → "Passwort"
  • "Login" → "Anmelden"
  • "This share is password-protected" → "Diese Freigabe ist durch ein Passwort geschützt"

Actual behaviour

Anonymous pages are always displayed in English.

Examples:

  • "Username or email"
  • "Password"
  • "Login"
  • "This share is password-protected"

The same installation displays authenticated pages in German correctly.

Additional investigation

Browser request headers contain:

Accept-Language: de-DE,de;q=0.9

German translation files are present:

core/l10n/de.json
core/l10n/de_DE.json
apps/files_sharing/l10n/de.json
apps/files_sharing/l10n/de_DE.json

Example translation exists:

"This share is password-protected" : "Diese Freigabe ist durch ein Passwort geschützt"

The affected template uses the translation API:

$l->t('This share is password-protected')

Configuration changes had no effect:

occ config:system:set default_language --value="de_DE"
occ config:system:set default_locale --value="de_DE"

Also tested:

occ config:system:set force_language --value="de_DE"
occ config:system:set force_locale --value="de_DE"

After restarting the container, anonymous pages still remained in English.

The issue affects both:

  • /login
  • Password-protected public share authentication pages

Both pages remain in English while authenticated pages correctly use German.

A custom theme was initially enabled, but the issue was reproduced after completely disabling the theme as well.

Example

curl -s -H "Accept-Language: de-DE,de;q=0.9" https://<server>/login

Returns:

<label for="user">Username or email</label>
<label for="password">Password</label>
<span>Login</span>

instead of the German translations.

Server configuration

Operating system:
Ubuntu 22.04 LTS (Docker host)

Web server:
Apache (inside official ownCloud container)

Database:
MariaDB 10.11

PHP version:
PHP 7.4.33

ownCloud version:
10.16.2 Community

Updated from an older ownCloud or fresh install:
Migrated from an older ownCloud installation

Where did you install ownCloud from:
Official Docker image owncloud/server:10.16

Signing status (ownCloud 9.0 and above):

No integrity errors reported.

php occ integrity:check-core

The content of config/config.php:

Relevant settings:

{
  "default_language": "de_DE",
  "default_locale": "de_DE"
}

The same behaviour occurs regardless of these settings.

List of activated apps:

Standard ownCloud apps plus a few community apps.
No LDAP, SSO or language-related apps are enabled.

Are you using external storage, if yes which one:
No

Are you using encryption:
No

Are you using an external user-backend, if yes which one:
No

Client configuration

Browser:
Google Chrome 149

Operating system:
macOS 10.15.7

Logs

Web server error log

No related entries.

ownCloud log (data/owncloud.log)

No related entries.

Browser log

No JavaScript errors.

Network requests show:

Accept-Language: de-DE,de;q=0.9

and the login page still returns English strings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions