Title: Merge Proposal: Preferred Languages
Author: Pascal Birchler
Published: May 7, 2024

---

 [  ](https://profiles.wordpress.org/swissspidy/) [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)
7:39 pm _on_ May 7, 2024     
Tags: [6-6 ( 57 )](https://make.wordpress.org/core/tag/6-6/),
[feature plugins ( 122 )](https://make.wordpress.org/core/tag/feature-plugins/),
[feature projects ( 52 )](https://make.wordpress.org/core/tag/feature-projects/),
[i18n ( 37 )](https://make.wordpress.org/core/tag/i18n/), [merge-proposals ( 8 )](https://make.wordpress.org/core/tag/merge-proposals/),
[polyglots ( 6 )](https://make.wordpress.org/core/tag/polyglots/), [preferred-languages ( 7 )](https://make.wordpress.org/core/tag/preferred-languages/)

# Merge Proposal: Preferred Languages

Almost 8 years ago the [Preferred Languages](https://wordpress.org/plugins/preferred-languages/)
feature project was [kicked off](https://make.wordpress.org/core/2016/10/18/preferred-languages/)
in response to a feature requestfeature request A feature request should generally
begin the process in the ideas forum, on a mailing list, as a plugin, or brought
to the attention of the core team, such as through scope meetings held for each 
major release. Unsolicited tickets of this variety are typically, therefore, discouraged.
in [#28197](https://core.trac.wordpress.org/ticket/28197). Right now it is probably
the oldest active feature pluginFeature Plugin A plugin that was created with the
intention of eventually being proposed for inclusion in WordPress Core. See [Features as Plugins](https://make.wordpress.org/core/handbook/about/release-cycle/features-as-plugins/).
Over time there were [numerous updates](https://make.wordpress.org/core/2022/04/27/an-update-on-preferred-languages/),
bugbug A bug is an error or unexpected result. Performance improvements, code optimization,
and are considered enhancements, not defects. After feature freeze, only bugs are
dealt with, with regressions (adverse changes from the previous version) being the
highest priority. fixes, and even a [complete refactor](https://make.wordpress.org/core/2023/04/03/preferred-languages-help-test-the-latest-version/).
Preferred Languages was always built and maintained with the goal in mind to merge
it into coreCore Core is the set of software required to run WordPress. The Core
Development Team builds WordPress. one day. Now the time is finally right to do 
so.

## Purpose & Goals

As a quick reminder, Preferred Languages replaces the existing languages dropdown
with a supercharged version that lets you select multiple preferred languages. WordPress
then tries to load the translations for the first language that’s available, falling
back to the next language in your list otherwise. Without this, WordPress would 
just fall back to English (US) in such cases, which is not a great experience. Such
a UIUI User interface is a pretty standard feature that can be seen for example 
also in operating system and browser settings.

[⌊Preferred Languages UI, showing the list of selected languages on the settings
page.⌉⌊Preferred Languages UI, showing the list of selected languages on the settings
page.⌉[

Example of the Preferred Languages UI on the settings page

**Note:** Preferred Languages works for both the site language (can be set at Settings-
> General) and the user language (can be set in the profile).

## Project Background

You may wonder why it took such a long time. Since the project’s inception, a lot
has changed in WordPress. For example, GutenbergGutenberg The Gutenberg project 
is the new Editor Interface for WordPress. The editor improves the process and experience
of creating new content, making writing rich content much simpler. It uses ‘blocks’
to add richness rather than shortcodes, custom HTML etc. [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)
happened. That’s why Preferred Languages saw a complete rewrite using the same ReactReact
React is a JavaScript library that makes it easy to reason about, construct, and
maintain stateless and stateful user interfaces. [https://reactjs.org](https://reactjs.org/)
components that also power the blockBlock Block is the abstract term used to describe
units of markup that, composed together, form the content or layout of a webpage
using the WordPress editor. The idea combines concepts of what in the past may have
achieved with shortcodes, custom HTML, and embed discovery into a single consistent
API and user experience. editor. With Gutenberg we also saw the introduction of 
[JavaScript localization](https://make.wordpress.org/core/2018/11/09/new-javascript-i18n-support-in-wordpress/),
which required further iterations to Preferred Languages. Then there was a need 
for merging incomplete translations, reducing the chances that you see missing strings
in English. However, merging translations was very bad for performance, as it involves
loading lots of translationtranslation The process (or result) of changing text,
words, and display formatting to support another language. Also see [localization](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?output_format=md#l10n),
[internationalization](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?output_format=md#i18n).
files. In WordPress 6.5 we finally completely [replaced the localization library with a more performant solution](https://make.wordpress.org/core/2024/02/27/i18n-improvements-6-5-performant-translations/)
that natively supports loading multiple files at once. **So this last remaining 
blockerblocker A bug which is so severe that it blocks a release. is now finally
resolved!**

Internationalization and localization is a core part of WordPress and relevant [for more than half of all users](https://wordpress.org/about/stats/).
That’s why this functionality belongs natively into WordPress core and not in a 
[(canonical) plugin](https://make.wordpress.org/core/2022/09/11/canonical-plugins-revisited/).
Merging Preferred Languages into core would allow the fallback logic to run much
closer to where translation loading happens, reducing the risk for bugs and pluginPlugin
A plugin is a piece of software containing a group of functions that can be added
to a WordPress website. They can extend functionality or add new features to your
WordPress websites. WordPress plugins are written in the PHP programming language
and integrate seamlessly with WordPress. These can be free in the WordPress.org 
Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
or can be cost-based plugin from a third-party. incompatibilities. Plus, the UI 
impact is minimal, as it simply expands an existing language dropdown with additional
features.

## Implementation Details

The UI is built using TypeScript and React and the `@wordpress/*` npm packages also
used for Gutenberg. This makes for a consistent look & feel and will make it easy
to integrate it into any revamped WordPress adminadmin (and super admin) UI. The
back end parts were developed in such a way that merging them into core eventually
is as straightforward as possible, so a patchpatch A special text file that describes
changes to code, by identifying the files and lines which are added, removed, and
altered. It may also be referred to as a **diff**. A patch can be _applied_ to a
codebase for testing. can be developed relatively quickly.

Preferred Languages has been tested in production websites over numerous years by
thousands of users. It works in all major browsers supported by WordPress, follows
accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to 
the design of products, devices, services, or environments for people with disabilities.
The concept of accessible design ensures both “direct access” (i.e. unassisted) 
and “indirect access” meaning compatibility with a person’s assistive technology(
for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
best practices, and gracefully falls back to the old single language dropdown if
JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming
language commonly used to create interactive effects within web browsers. WordPress
makes extensive use of JS for a better user experience. While PHP is executed on
the server, JS executes within a user’s browser. [https://www.javascript.com](https://www.javascript.com/)
is disabled.

## Contributors and Feedback

While I ([@swissspidy](https://profiles.wordpress.org/swissspidy/)) have been the
lead developer of the plugin, valuable input and [contributions](https://github.com/swissspidy/preferred-languages/graphs/contributors)
have come from others in the community.

This is a proposal and is subject to revision based on your feedback. If you haven’t
already tried out the plugin, please [download and install it](https://wordpress.org/plugins/preferred-languages/)
from WordPress.orgWordPress.org The community site where WordPress code is created
and shared by the users. This is where you can download the source code for WordPress
core, plugins and themes as well as the central location for community conversations
and organization. [https://wordpress.org/](https://wordpress.org/) or the comfort
of your WordPress admin. You can review the current code and leave feedback at the
project’s [GitHub repository](https://github.com/swissspidy/preferred-languages)
or in [#core-i18n](https://wordpress.slack.com/archives/core-i18n/) on SlackSlack
Slack is a Collaborative Group Chat Platform [https://slack.com/](https://slack.com/).
The WordPress community has its own Slack Channel at [https://make.wordpress.org/chat/](https://make.wordpress.org/chat/).

All feedback will be collected over the next couple of weeks. After that, the received
feedback will be discussed and next steps determined. The goal is to work on and
land a patch quickly to ensure that the feature gets plenty of testing in WordPress
trunktrunk A directory in Subversion containing the latest development code in preparation
for the next major release cycle. If you are running "trunk", then you are on the
latest revision..

_Props to [@ocean90](https://profiles.wordpress.org/ocean90/) for reviewing this
post._

[#6-6](https://make.wordpress.org/core/tag/6-6/), [#feature-plugins](https://make.wordpress.org/core/tag/feature-plugins/),
[#feature-projects](https://make.wordpress.org/core/tag/feature-projects/), [#i18n](https://make.wordpress.org/core/tag/i18n/),
[#merge-proposals](https://make.wordpress.org/core/tag/merge-proposals/), [#polyglots](https://make.wordpress.org/core/tag/polyglots/),
[#preferred-languages](https://make.wordpress.org/core/tag/preferred-languages/)

### Share this:

 * [  Threads ](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?share=threads)
 * [  Mastodon ](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?share=mastodon)
 * [  Bluesky ](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?share=bluesky)
 * [  X ](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?share=x)
 * [  Facebook ](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?share=facebook)
 * [  LinkedIn ](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?share=linkedin)

 1.  ![](https://secure.gravatar.com/avatar/6f505c6be9a951929a99becb6b413dcfa583a5ca3dd0f7320766fee1481f0f82?
     s=32&d=mm&r=g)
 2.   [Jb Audras](https://profiles.wordpress.org/audrasjb/)  8:29 pm _on_ May 7, 2024
 3.  As a CoreCore Core is the set of software required to run WordPress. The Core 
     Development Team builds WordPress. tech lead for this release, I think this proposal
     is solid enough to be shipped in this version. My only concern is whether our 
     alpha/betaBeta A pre-release of software that is given out to a large group of
     users to trial under real conditions. Beta versions have gone through alpha testing
     in-house and are generally fairly close in look, feel and function to the final
     product; however, design changes often occur as part of the process. timeline 
     allows us to ship it right now in the `early` state of 6.6, given we don’t have
     any Core Triagetriage The act of evaluating and sorting bug reports, in order 
     to decide priority, severity, and other factors./Test Leads yet.
 4.  ![](https://secure.gravatar.com/avatar/a556f0c812162ab6f10fc8748912889c4b1135aafaa4452badcf5b733bb1f91d?
     s=32&d=mm&r=g)
 5.   [David Perez](https://profiles.wordpress.org/davidperez/)  9:12 pm _on_ May 7,
     2024
 6.  Congratulations Pascal! At last we can find Preferred languages in the coreCore
     Core is the set of software required to run WordPress. The Core Development Team
     builds WordPress.!.
 7.  This will be very important for example for the Hispanic community, as we have
     in Spain the top plugins translated, they will see that now it won’t go to english.
 8.  Awesome!
 9.  ![](https://secure.gravatar.com/avatar/82779a185fccde41e1dd3b914bde84cd6be76c8dcb8f6b983f461c8f5687a87e?
     s=32&d=mm&r=g)
 10.  [Andy Fragen](https://profiles.wordpress.org/afragen/)  10:32 pm _on_ May 7, 
     2024
 11. Did I miss where the PR for integration to coreCore Core is the set of software
     required to run WordPress. The Core Development Team builds WordPress. is?
 12. I ask as the architecture and implementation of the PR often differs substantially
     from the feature pluginFeature Plugin A plugin that was created with the intention
     of eventually being proposed for inclusion in WordPress Core. See [Features as Plugins](https://make.wordpress.org/core/handbook/about/release-cycle/features-as-plugins/).
 13.  * ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
        s=32&d=mm&r=g)
      *  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  6:19 am _on_
        May 8, 2024
      * No PR yet. As per the post, I‘d like to get some feedback first to avoid unnecessary
        work. A PR should then be relatively easy to put together. The pluginPlugin
        A plugin is a piece of software containing a group of functions that can be
        added to a WordPress website. They can extend functionality or add new features
        to your WordPress websites. WordPress plugins are written in the PHP programming
        language and integrate seamlessly with WordPress. These can be free in the 
        WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
        or can be cost-based plugin from a third-party.‘s code has already been written&
        organized in a similar fashion as coreCore Core is the set of software required
        to run WordPress. The Core Development Team builds WordPress..
 14. ![](https://secure.gravatar.com/avatar/88e6359d68a9a5cb853e2738b07ce5e831892e39667d786da1331d3a59df1300?
     s=32&d=mm&r=g)
 15.  [Brian Haas](https://profiles.wordpress.org/masteradhoc/)  5:30 am _on_ May 8,
     2024
 16. Thank you [@swissspidy](https://profiles.wordpress.org/swissspidy/) for the great
     feature pluginFeature Plugin A plugin that was created with the intention of eventually
     being proposed for inclusion in WordPress Core. See [Features as Plugins](https://make.wordpress.org/core/handbook/about/release-cycle/features-as-plugins/)
     and bringing this important feature to coreCore Core is the set of software required
     to run WordPress. The Core Development Team builds WordPress.. Many websites that
     operate in europe will get a great benefit out of this!
 17. ![](https://secure.gravatar.com/avatar/fc767c2ddea53405c2948351b99ad961593040b359b931ee9b92856cdae9ec48?
     s=32&d=mm&r=g)
 18.  [Jeroen Rotty](https://profiles.wordpress.org/jeroenrotty/)  6:33 am _on_ May
     8, 2024
 19. Awesome. Have been rooting for this to happen for a couple of years. Means a lot
     to all non-en-US websites out there! Thanks Pascal for your dedication over the
     years.
 20. ![](https://secure.gravatar.com/avatar/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?
     s=32&d=mm&r=g)
 21.  [leemon](https://profiles.wordpress.org/leemon/)  6:43 am _on_ May 8, 2024
 22. Thanks for adding this feature to coreCore Core is the set of software required
     to run WordPress. The Core Development Team builds WordPress.!
 23. ![](https://secure.gravatar.com/avatar/80c838b93c23e1188834951292bef5eabd69d9f171f22841d643b94cc7970430?
     s=32&d=mm&r=g)
 24.  [Dave Loodts](https://profiles.wordpress.org/davelo/)  6:47 am _on_ May 8, 2024
 25. Awesome news! This will take a lot of pressure from language contributors. And#
     coreCore Core is the set of software required to run WordPress. The Core Development
     Team builds WordPress. has to do anything in it’s power to make everyones precious
     time as efficient as possible; so this was always a no-brainer to have in [#core](https://make.wordpress.org/core/tag/core/).
 26. ![](https://secure.gravatar.com/avatar/a3d65dbb7c58b7892c698cf0dc222f33f6cd231c13196f29a067dedd4d7e529c?
     s=32&d=mm&r=g)
 27.  [Bernhard Kau](https://profiles.wordpress.org/kau-boy/)  8:34 am _on_ May 8, 
     2024
 28. I can’t wait for this to be merged! If it already lands in 6.6, I will try to 
     find a way to migrate the settings from my “Language Fallback” pluginPlugin A 
     plugin is a piece of software containing a group of functions that can be added
     to a WordPress website. They can extend functionality or add new features to your
     WordPress websites. WordPress plugins are written in the PHP programming language
     and integrate seamlessly with WordPress. These can be free in the WordPress.org
     Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
     or can be cost-based plugin from a third-party. into the new setting and then 
     show a message to all users to uninstall it.
 29. ![](https://secure.gravatar.com/avatar/ec6a49f01b047a37da956a20ebc3f4097c99fc4f559c9be8fecce6b38a758acd?
     s=32&d=mm&r=g)
 30.  [Pedro Mendonça](https://profiles.wordpress.org/pedromendonca/)  8:35 am _on_
     May 8, 2024
 31. Thanks for this amazing effort 🙂
 32. ![](https://secure.gravatar.com/avatar/85b3ccf3d505b40e64c56ee29c72bfa9f166468c4998288edcb561b53c804c64?
     s=32&d=mm&r=g)
 33.  [Torsten Landsiedel](https://profiles.wordpress.org/zodiac1978/)  1:39 pm _on_
     May 8, 2024
 34. Thank you, Pascal! This would be a great addition to coreCore Core is the set 
     of software required to run WordPress. The Core Development Team builds WordPress.
     and your pluginPlugin A plugin is a piece of software containing a group of functions
     that can be added to a WordPress website. They can extend functionality or add
     new features to your WordPress websites. WordPress plugins are written in the 
     PHP programming language and integrate seamlessly with WordPress. These can be
     free in the WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
     or can be cost-based plugin from a third-party. is running smooth and without 
     any problems on many client projects 🙂
 35. ![](https://secure.gravatar.com/avatar/c33dffb0341aeea5d96c65cebc3e165acf0326be7d7b2a7670310139309c1100?
     s=32&d=mm&r=g)
 36.  [Patricia BT](https://profiles.wordpress.org/patricia70/)  7:30 am _on_ May 10,
     2024
 37. Essential! thank you [@swissspidy](https://profiles.wordpress.org/swissspidy/)
     
     At least it won’t be necessary to add the pluginPlugin A plugin is a piece of 
     software containing a group of functions that can be added to a WordPress website.
     They can extend functionality or add new features to your WordPress websites. 
     WordPress plugins are written in the PHP programming language and integrate seamlessly
     with WordPress. These can be free in the WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
     or can be cost-based plugin from a third-party. all the time anymore! (and it 
     works smoothly without any problem wherever I use it). I think also many end-users
     were not aware that it existed as a feature pluginFeature Plugin A plugin that
     was created with the intention of eventually being proposed for inclusion in WordPress
     Core. See [Features as Plugins](https://make.wordpress.org/core/handbook/about/release-cycle/features-as-plugins/)
     and once in coreCore Core is the set of software required to run WordPress. The
     Core Development Team builds WordPress. it will make life easier to many people.
 38. ![](https://secure.gravatar.com/avatar/b98cc60e2f12d4573ab0dca7442b45137144bac0ffb28dac83fe6a72bd6ba007?
     s=32&d=mm&r=g)
 39.  [Josepha](https://profiles.wordpress.org/chanthaboune/)  2:11 pm _on_ May 10,
     2024
 40. From a business/growth/user perspective, the inclusion of this kind of functionality
     is a yes from me. My one request is that we pay attention to the way the user 
     flow/UXUX User experience fits into the CMS as a whole. This seems like a thing
     we could accidentally overcomplicate and I want it to be as user friendly as possible.
 41. +make.wordpress.org/design/
 42.  * ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
        s=32&d=mm&r=g)
      *  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  3:30 pm _on_
        May 10, 2024
      * Thanks! I appreciate any additional design feedback.
      * For context, [as described in the original kickoff post](https://make.wordpress.org/core/2016/10/18/preferred-languages/),
        the UIUI User interface is inspired by similar settings in operating systems
        and browsers. The Up/Down/Remove buttons in particular address an accessibilityAccessibility
        Accessibility (commonly shortened to a11y) refers to the design of products,
        devices, services, or environments for people with disabilities. The concept
        of accessible design ensures both “direct access” (i.e. unassisted) and “indirect
        access” meaning compatibility with a person’s assistive technology (for example,
        computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) requirement.
 43. ![](https://secure.gravatar.com/avatar/18f4f7ebdcd48383951a52a88f401bd6460ae74b626016010b1f0604cac90826?
     s=32&d=mm&r=g)
 44.  [Jonathan Desrosiers](https://profiles.wordpress.org/desrosj/)  3:55 pm _on_ 
     May 10, 2024
 45. First off, thank you [@swissspidy](https://profiles.wordpress.org/swissspidy/)
     for all of your time and effort over the last 8 years working on and leading this
     feature pluginFeature Plugin A plugin that was created with the intention of eventually
     being proposed for inclusion in WordPress Core. See [Features as Plugins](https://make.wordpress.org/core/handbook/about/release-cycle/features-as-plugins/)!
     🙌
 46. In general I support this proposal and agree that it’s time to look at merging
     so this chapter of the feature can be closed.
 47. > That’s why Preferred Languages saw a complete rewrite using the same ReactReact
     > React is a JavaScript library that makes it easy to reason about, construct,
     > and maintain stateless and stateful user interfaces.
     >  [https://reactjs.org](https://reactjs.org/)
     > components that also power the blockBlock Block is the abstract term used to
     > describe units of markup that, composed together, form the content or layout
     > of a webpage using the WordPress editor. The idea combines concepts of what 
     > in the past may have achieved with shortcodes, custom HTML, and embed discovery
     > into a single consistent API and user experience. editor.
 48. While reading through the proposal, this sentence stood out to me. I think reusing
     APIs and libraries that already exist within the code base for consistency is 
     great. CoreCore Core is the set of software required to run WordPress. The Core
     Development Team builds WordPress. should use itself as much as possible.
 49. To my knowledge, though, this will be the first time that a feature in Core outside
     of areas explicitly established as “block environments” (the editor, widgets screen,
     etc.) will rely on an npm package that we maintain and publish through the GutenbergGutenberg
     The Gutenberg project is the new Editor Interface for WordPress. The editor improves
     the process and experience of creating new content, making writing rich content
     much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom 
     HTML etc.
      [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)
     repository.
 50. While the two code bases continue to be managed in one place, I think we need 
     consider ways to ensure modifications within the Gutenberg repository will not
     break features maintained in SVNSVN Subversion, the popular version control system(
     VCS) by the Apache project, used by WordPress to manage changes to its codebase.
     before merging PRs and publishing packages in Gutenberg. Otherwise bugs and breaking
     changes will not be detected until the packages are merged into SVN, which currently
     happens too late to address any serious compatibility issues that may arise from
     these types of situations.
 51.  * ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
        s=32&d=mm&r=g)
      *  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  6:54 pm _on_
        May 10, 2024
      * The pluginPlugin A plugin is a piece of software containing a group of functions
        that can be added to a WordPress website. They can extend functionality or 
        add new features to your WordPress websites. WordPress plugins are written 
        in the PHP programming language and integrate seamlessly with WordPress. These
        can be free in the WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
        or can be cost-based plugin from a third-party. has good e2e test coverage.
        Besides merging npm package updates more often, we could either move those 
        tests to GutenbergGutenberg The Gutenberg project is the new Editor Interface
        for WordPress. The editor improves the process and experience of creating new
        content, making writing rich content much simpler. It uses ‘blocks’ to add 
        richness rather than shortcodes, custom HTML etc.
         [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)(
        instead of coreCore Core is the set of software required to run WordPress. 
        The Core Development Team builds WordPress.), or have Gutenberg run all core
        e2e tests in CI. Both choices seem a bit odd.
         - ![](https://secure.gravatar.com/avatar/323cf209e19dd825678e9ccc51bc3f745f96571f1c68af26ae7955c1fa9ad1f2?
           s=32&d=mm&r=g)
         -  [Aaron Jorbin](https://profiles.wordpress.org/jorbin/)  3:16 pm _on_ May
           14, 2024
         - Having GutenbergGutenberg The Gutenberg project is the new Editor Interface
           for WordPress. The editor improves the process and experience of creating
           new content, making writing rich content much simpler. It uses ‘blocks’ 
           to add richness rather than shortcodes, custom HTML etc.
            [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)
           run coreCore Core is the set of software required to run WordPress. The 
           Core Development Team builds WordPress. e2e tests before publishing new 
           packages doesn’t feel odd, it feels like a good way to prevent package updates
           from not being accepted since they would break the core tests.
      * ![](https://secure.gravatar.com/avatar/4358d28c1e85f9015cb3363e024e2b238bccb44d05c4b84e9a38aafef0d83ac9?
        s=32&d=mm&r=g)
      *  [Riad Benguella](https://profiles.wordpress.org/youknowriad/)  9:06 pm _on_
        May 14, 2024
      * There’s another alternative here. I didn’t look at the code base of the pluginPlugin
        A plugin is a piece of software containing a group of functions that can be
        added to a WordPress website. They can extend functionality or add new features
        to your WordPress websites. WordPress plugins are written in the PHP programming
        language and integrate seamlessly with WordPress. These can be free in the 
        WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
        or can be cost-based plugin from a third-party. but if the UIUI User interface
        is ReactReact React is a JavaScript library that makes it easy to reason about,
        construct, and maintain stateless and stateful user interfaces.
         [https://reactjs.org](https://reactjs.org/)
        based, I expect that there’s some kind of JSJS JavaScript, a web scripting 
        language typically executed in the browser. Often used for advanced user interfaces
        and behaviors. script that is produced and loaded in php to bootstrap the page.
      * This is not dissimilar to edit-post, edit-site or edit-widgets packages. These
        also correspond to “scripts that are used to bootstrap pages”.
      * So one possible way is to move the UI to a package in the GutenbergGutenberg
        The Gutenberg project is the new Editor Interface for WordPress. The editor
        improves the process and experience of creating new content, making writing
        rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes,
        custom HTML etc.
         [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)
        repo, just like these scripts and maintain it there.
      * I think Gutenberg is not really “editor” specific or anything.
         - ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
           s=32&d=mm&r=g)
         -  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  9:52 pm 
           _on_ May 14, 2024
         - If y‘all think it would make sense for that JSJS JavaScript, a web scripting
           language typically executed in the browser. Often used for advanced user
           interfaces and behaviors. (or actually, TypeScript) code to live in the 
           GutenbergGutenberg The Gutenberg project is the new Editor Interface for
           WordPress. The editor improves the process and experience of creating new
           content, making writing rich content much simpler. It uses ‘blocks’ to add
           richness rather than shortcodes, custom HTML etc.
            [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)
           repo, sure, we can certainly explore that.
 52. ![](https://secure.gravatar.com/avatar/18f4f7ebdcd48383951a52a88f401bd6460ae74b626016010b1f0604cac90826?
     s=32&d=mm&r=g)
 53.  [Jonathan Desrosiers](https://profiles.wordpress.org/desrosj/)  4:02 pm _on_ 
     May 10, 2024
 54. I had one additional question that is very unrelated to my other comment, so I
     wanted to separate it to help focus each discussion.
 55. Was there any discussion around whether the install screen should also allow the
     configuration of multiple languages with the ability to order preference? I think
     that could be a great thing to consider for a v2 (or v3, v4, v5, wherever you 
     are at in versions based on rewrites). We should avoid adding too much complexity
     to the famous “5 minutes install”, but I think it would be great for multilingual
     sites to configure this during installation.
 56. Including this in a UIUI User interface may be a bad idea, but maybe some WP CLICLI
     Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or 
     WP-CLI for WordPress. arguments could be useful for that.
 57.  * ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
        s=32&d=mm&r=g)
      *  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  6:51 pm _on_
        May 10, 2024
      * This actually hasn’t come up before. Probably because it’s not something that
        can be implemented with a pluginPlugin A plugin is a piece of software containing
        a group of functions that can be added to a WordPress website. They can extend
        functionality or add new features to your WordPress websites. WordPress plugins
        are written in the PHP programming language and integrate seamlessly with WordPress.
        These can be free in the WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
        or can be cost-based plugin from a third-party..
      * As you say it would require careful consideration. I think the install can 
        be kept as-is, as one can still edit the list afterwards in the settings. Perhaps
        there could be an adminadmin (and super admin) notice or so to recommend that.
        
        Similarly, the Add New Site form in Multisitemultisite Used to describe a WordPress
        installation with a network of multiple blogs, grouped by sites. This installation
        type has shared users tables, and creates separate database tables for each
        blog (wp_posts becomes wp_0_posts). See also **network**, **blog**, **site**
        right now still uses a single language dropdown to keep it simple, but after
        creation you can customize the list as you wish.
      * Updating WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used
        to do administrative and development tasks in a programmatic way. The project
        page is [http://wp-cli.org/](http://wp-cli.org/) [https://make.wordpress.org/cli/](https://make.wordpress.org/cli/)
        to support this feature after merge is definitely a goal.
 58. ![](https://secure.gravatar.com/avatar/8a1e93d3c32da0fd1a1034626977f089cc5690a5584b117689368a119265e13d?
     s=32&d=mm&r=g)
 59.  [Mustafa Uysal](https://profiles.wordpress.org/m_uysl/)  8:10 pm _on_ May 10,
     2024
 60. Can’t wait to see this merged into the coreCore Core is the set of software required
     to run WordPress. The Core Development Team builds WordPress.. Thanks for all 
     your efforts, [@swissspidy](https://profiles.wordpress.org/swissspidy/)!
 61. ![](https://secure.gravatar.com/avatar/ea5cf1a9df9bcd651321908528303a454c328977ac49b83465c61e850f4132b4?
     s=32&d=mm&r=g)
 62.  [Pieterjan Deneys](https://profiles.wordpress.org/nekojonez/)  7:45 am _on_ May
     14, 2024
 63. That pluginPlugin A plugin is a piece of software containing a group of functions
     that can be added to a WordPress website. They can extend functionality or add
     new features to your WordPress websites. WordPress plugins are written in the 
     PHP programming language and integrate seamlessly with WordPress. These can be
     free in the WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
     or can be cost-based plugin from a third-party. should never have been a plugin
     but a part of coreCore Core is the set of software required to run WordPress. 
     The Core Development Team builds WordPress. from day one imho. Extremely hyped
     for this and if it doesnt land in 6.6, crossing my fingers for 6.7.
 64. Its going to give a ton of flexibility for users.
 65. ![](https://secure.gravatar.com/avatar/12b93d2a2baed035aa99f0cfbc4f00f3ed5d8a59563694910bcdffbccb5fa256?
     s=32&d=mm&r=g)
 66.  [Alex Kirk](https://profiles.wordpress.org/akirk/)  8:53 am _on_ May 14, 2024
 67. This is such an important feature, I am really glad that you’ve been able to get
     it to the point (especially with the translationtranslation The process (or result)
     of changing text, words, and display formatting to support another language. Also
     see [localization](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?output_format=md#l10n),
     [internationalization](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?output_format=md#i18n).
     loading performance of multiple languages) where it is ready for merging. Thank
     you [@swissspidy](https://profiles.wordpress.org/swissspidy/)!
      I also wanted 
     to offer the perspective that regional English speakers (like English (Canada)
     or English (UK)) already got the “preferred languages” behavior since WordPress
     was made translatable. When there was no “translation” to their local English,
     they could still understand it (maybe looked at a missing “ou” with a raised eyebrow)
     because it would fall back to US English. The Preferred Languages feature now 
     gives a similar behavior to native speakers of other languages and am very happy
     about it. You could try this thought experiment about what would had happened 
     if UK English fell back to Chinese instead of US English 🙂
 68.  * ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
        s=32&d=mm&r=g)
      *  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  9:52 pm _on_
        May 14, 2024
      * I like this perspective, thanks!
 69. ![](https://secure.gravatar.com/avatar/323cf209e19dd825678e9ccc51bc3f745f96571f1c68af26ae7955c1fa9ad1f2?
     s=32&d=mm&r=g)
 70.  [Aaron Jorbin](https://profiles.wordpress.org/jorbin/)  3:33 pm _on_ May 14, 
     2024
 71. Something that isn’t clear to me is why typescript is used and related, where 
     this code is intended to live. Right now, WordPress CoreCore Core is the set of
     software required to run WordPress. The Core Development Team builds WordPress.
     does not use Typescript and if the intent is for this to live in develop.svn.wordpress.
     orgWordPress.org The community site where WordPress code is created and shared
     by the users. This is where you can download the source code for WordPress core,
     plugins and themes as well as the central location for community conversations
     and organization. [https://wordpress.org/](https://wordpress.org/) then I think
     there needs to be a separate discussion of how, when, and where WordPress typescript
     should be used before this is merged. If the intent is to live in wordpress/gutenbergGutenberg
     The Gutenberg project is the new Editor Interface for WordPress. The editor improves
     the process and experience of creating new content, making writing rich content
     much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom 
     HTML etc.
      [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/),
     I believe the norm there is for only low level packages to use typescript.
 72. This can be post-merge, but I think it would be beneficial to update the performance
     tests to also include language fallbacks. Maybe both a short chain (for example
     es_PR falling back to es_ES ) and a longer one (for example es_PR -> es_DO -> 
     es_CR -> es_MX -> es_ES ). I would imagine this as an additional run of the performance
     tests not a replacement for the current translationtranslation The process (or
     result) of changing text, words, and display formatting to support another language.
     Also see [localization](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?output_format=md#l10n),
     [internationalization](https://make.wordpress.org/core/2024/05/07/merge-proposal-preferred-languages/?output_format=md#i18n).
     test.
 73. –
 74.  * ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
        s=32&d=mm&r=g)
      *  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  10:01 pm _on_
        May 14, 2024
      * Why? Because TypeScript is great for code quality and developer experience.
        
        I don’t see why that code couldn’t live in the coreCore Core is the set of 
        software required to run WordPress. The Core Development Team builds WordPress.
        repo. Having the UIUI User interface code in GB and the PHPPHP The web scripting
        language in which WordPress is primarily architected. WordPress requires PHP
        7.4 or higher code in core would be confusing IMHO, but open to any discussions.
      * +1 to adding such test coverage. (Related: the lack of Jest suport in core 
        is a bummer)
         - ![](https://secure.gravatar.com/avatar/323cf209e19dd825678e9ccc51bc3f745f96571f1c68af26ae7955c1fa9ad1f2?
           s=32&d=mm&r=g)
         -  [Aaron Jorbin](https://profiles.wordpress.org/jorbin/)  4:18 pm _on_ May
           15, 2024
         - TypeScript adds a barrier to contributing that does not currently exist 
           and increases the dependencies that need to be maintained. Even if some 
           have the opinion that it is “great for code quality and developer experience”,
           I don’t think it should just be added without an explicit decision that 
           this is something we want to use and maintain.
         - I would absolutely be down for starting to include some jest tests in coreCore
           Core is the set of software required to run WordPress. The Core Development
           Team builds WordPress.. When the tests folder was setup, putting the tools
           in seperate folders was an explicit decision so that in the future we weren’t
           stuck using only some or switching (it’s why the folders are named `qunit`
           and `phpunit` not `js` and `php`)
            * ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
              s=32&d=mm&r=g)
            *  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  6:25 
              pm _on_ May 15, 2024
            * An alternative to moving the code to the GB repo would be to simply remove
              the types and turn the TypeScript into JavaScriptJavaScript JavaScript
              or JS is an object-oriented computer programming language commonly used
              to create interactive effects within web browsers. WordPress makes extensive
              use of JS for a better user experience. While PHP is executed on the 
              server, JS executes within a user’s browser.
               [https://www.javascript.com](https://www.javascript.com/),
              accepting the cons that come with the pros.
 75. ![](https://secure.gravatar.com/avatar/276c1b13f476a349abe7cbbfe13ae8b963ffa1314c13a39d9cc85d6548a71e0e?
     s=32&d=mm&r=g)
 76.  [djsteveb](https://profiles.wordpress.org/djsteveb/)  3:46 pm _on_ May 15, 2024
 77. I wonder if it’s possible to make it so preferred language displays on the front
     end in one way and then in the backend can be chosen per user settings?
 78. Recent experience: I set a site to another language as that was the front end 
     need.. but then have a terrible time navigating the dashboard in a different language.
 79. I can imagine if this could be an option with each user of the WP, things would
     be profoundly better for sites where different users benefit from different languages
     on the backend nav buttons and such.
 80.  * ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
        s=32&d=mm&r=g)
      *  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  3:48 pm _on_
        May 15, 2024
      * Each user in WordPress can already set their preferred localeLocale A locale
        is a combination of language and regional dialect. Usually locales correspond
        to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil).
        Other examples of locales include Canadian English and U.S. English.. That’s
        supported since WordPress 4.7.
 81. ![](https://secure.gravatar.com/avatar/1718b7c2f2afc31b4e94805b6f1f6ae2b802cc4c696f99b11fde2186006c82c9?
     s=32&d=mm&r=g)
 82.  [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)  9:16 pm _on_ July
     11, 2024
 83. Better late than never, but since it was clear there wasn’t enough time for this
     in 6.6, I waited with posting another update here.
 84. The gist of the feedback so far is:
 85.  * Concerns that coreCore Core is the set of software required to run WordPress.
        The Core Development Team builds WordPress. starts consuming GB packages outside
        of the editor
      * Tooling limitations in core (no TypeScript, no ESLint, no Jest tests)
      * Concerns about adding TypeScript to core (implications for build server etc.
      * Add performance tests with fallback chain as well
      * Consider moving the JSJS JavaScript, a web scripting language typically executed
        in the browser. Often used for advanced user interfaces and behaviors. logic
        to a GutenbergGutenberg The Gutenberg project is the new Editor Interface for
        WordPress. The editor improves the process and experience of creating new content,
        making writing rich content much simpler. It uses ‘blocks’ to add richness 
        rather than shortcodes, custom HTML etc.
         [https://wordpress.org/gutenberg/](https://wordpress.org/gutenberg/)
        package, and then import it from there. All PHPPHP The web scripting language
        in which WordPress is primarily architected. WordPress requires PHP 7.4 or 
        higher code lives in core.

Comments are closed.

# Post navigation

[← Progress Report: HTML API](https://make.wordpress.org/core/2024/05/07/progress-report-html-api-2/)

[Recap: WordPress 6.5 “Regina” Retrospective →](https://make.wordpress.org/core/2024/05/08/recap-wordpress-6-5-regina-retrospective/)