Archive of https://github.com/blackbearreloaded/ps5-system-language-research — PS5 homebrew research and C++ helpers for detecting the configured system language https://github.com/blackbearreloaded/ps5-system-language-research
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-09 16:37:41 -04:00
.github Ask for the homebrew enabler and ShadowMountPlus version in issue forms 2026-10-09 16:37:41 -04:00
include Research notes 2026-10-09 15:32:37 -04:00
tests Research notes 2026-10-09 15:32:37 -04:00
LICENSE Research notes 2026-10-09 15:32:37 -04:00
README.md Research notes 2026-10-09 15:32:37 -04:00

PS5 System Language Research

Documentation and minimal C++ code for reading the language selected in PlayStation 5 system settings.

Quick start

Include include/ps5_system_language.hpp, link the PS5 Payload SDK's SceSystemService stub, and call:

const std::string_view locale = ps5::i18n::current_language_tag();

For a prospero.mk project, add the library to the existing link list:

LDADD += -lSceSystemService

The header calls:

sceSystemServiceParamGetInt(1, &language);

Parameter ID 1 requests the system language. The function returns 0 on success and writes the selected language ID to language. The helper returns en-US if the call fails or the firmware returns an unknown value.

Language IDs

ID System language BCP 47 tag
0 Japanese ja-JP
1 English (United States) en-US
2 French (France) fr-FR
3 Spanish (Spain) es-ES
4 German de-DE
5 Italian it-IT
6 Dutch nl-NL
7 Portuguese (Portugal) pt-PT
8 Russian ru-RU
9 Korean ko-KR
10 Chinese (Traditional) zh-Hant
11 Chinese (Simplified) zh-Hans
12 Finnish fi-FI
13 Swedish sv-SE
14 Danish da-DK
15 Norwegian nb-NO
16 Polish pl-PL
17 Portuguese (Brazil) pt-BR
18 English (United Kingdom) en-GB
19 Turkish tr-TR
20 Spanish (Latin America) es-419
21 Arabic ar
22 French (Canada) fr-CA
23 Czech cs-CZ
24 Hungarian hu-HU
25 Greek el-GR
26 Romanian ro-RO
27 Thai th-TH
28 Vietnamese vi-VN
29 Indonesian id-ID
30 Ukrainian uk-UA

Values 0 through 29 follow the established SystemService ABI. Value 30 is community-documented and should be verified on the target firmware. Applications must retain an unknown-value fallback because later firmware may add values.

Loading translations

Keep the platform lookup separate from the application's translation fallback rules:

const auto locale = ps5::i18n::current_language_tag();

if (!load_translations(locale))
    load_translations("en-US");

Applications supporting fewer regions can deliberately collapse tags. For example, en-US and en-GB may both load an en resource, while zh-Hans and zh-Hant should normally remain distinct.

Evidence and scope

This repository documents a narrow compatibility technique. It does not claim that every listed language was tested on every PS5 firmware.

License and notices

Copyright © 2026 BlackBearReloaded. Licensed under GPL-3.0-or-later; see LICENSE.

This is a personal hobby project. It is not affiliated with, endorsed by or sponsored by Sony Interactive Entertainment or any other company named here. Product names are trademarks of their owners and are used only to describe compatibility.

Provided as is, without warranty. Nothing here is legal advice.