Skip to content
Snippets Groups Projects
Commit 2412c79d authored by Benni Mack's avatar Benni Mack Committed by Georg Ringer
Browse files

[FEATURE] Add unified Locale class (IETF RFC 5646)

A new locale class is added in order to migrate the
code base and the configuration towards real locales in
form of RFC 5646 language tag (en-AT) and optional
script code ("Hans") and optional country / region
based on ISO 3166-1.

This unifies handling of locales instead of dealing
with "default" or other TYPO3-specific namings in
user-land code and configuration.

This locale functionality at first serves
to handle "label files" (XLF), but will
be further extended to also work with the locale
to be used in the SiteLanguage object to simplify
configuration and Date/Time Formatting based
on php-intl.

Thus, the first and foremost topic is
to allow to create custom "LanguageService"
objects out of a defined Locale instead of
a string.

The locale class contains the actual
locale (such as "de-AT" or "en") but
also allows to use the backwards-compatibility
for the labels internally. It also contains the
dependencies, so they do not need to be evaluated
in various places and makes the public facing API
much easier to understand.

Next to the introduction of the Locale
object, this patch also adapts various places which touch
current LanguageService instantiations to use the Locale.

Next Steps:
* SiteLanguage.locale should use the object, as Locale uses a
   \Stringable interface.
* Reduce optional settings in Site Language object and editing interface
* A new languageService ($GLOBALS[LANG]) could and
   should be instantiated where it is needed, and not
   by re-using the same $GLOBALS[LANG] as this is needed
   This Reduce usages on $GLOBALS[LANG] by building
   a new LanguageService object based on the Context everywhere.
* Ideally deprecate $GLOBALS[LANG] in TYPO3 v12 LTS.

Resolves: #99694
Releases: main
Change-Id: I9e2464699a2e53f4e3b136e0b66351f9f3aaf71f
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77558


Tested-by: default avatarcore-ci <typo3@b13.com>
Tested-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
Tested-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
Reviewed-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
parent 87a40a01
Branches
Tags
No related merge requests found
Showing
with 359 additions and 68 deletions
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment