Skip to content

Commit dccd23e

Browse files
sharkwouterslouken
authored andcommitted
PSP: Add locale support
(cherry picked from commit f39c5cf)
1 parent 7217771 commit dccd23e

File tree

2 files changed

+82
-0
lines changed

2 files changed

+82
-0
lines changed

CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -2665,6 +2665,11 @@ elseif(PSP)
26652665
list(APPEND SOURCE_FILES ${PSP_THREAD_SOURCES})
26662666
set(HAVE_SDL_THREADS TRUE)
26672667
endif()
2668+
if(SDL_LOCALE)
2669+
file(GLOB PSP_LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/psp/*.c)
2670+
list(APPEND SOURCE_FILES ${PSP_LOCALE_SOURCES})
2671+
set(HAVE_SDL_LOCALE TRUE)
2672+
endif()
26682673
if(SDL_TIMERS)
26692674
set(SDL_TIMER_PSP 1)
26702675
file(GLOB PSP_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/psp/*.c)

src/locale/psp/SDL_syslocale.c

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*
2+
Simple DirectMedia Layer
3+
Copyright (C) 1997-2024 Sam Lantinga <[email protected]>
4+
5+
This software is provided 'as-is', without any express or implied
6+
warranty. In no event will the authors be held liable for any damages
7+
arising from the use of this software.
8+
9+
Permission is granted to anyone to use this software for any purpose,
10+
including commercial applications, and to alter it and redistribute it
11+
freely, subject to the following restrictions:
12+
13+
1. The origin of this software must not be misrepresented; you must not
14+
claim that you wrote the original software. If you use this software
15+
in a product, an acknowledgment in the product documentation would be
16+
appreciated but is not required.
17+
2. Altered source versions must be plainly marked as such, and must not be
18+
misrepresented as being the original software.
19+
3. This notice may not be removed or altered from any source distribution.
20+
*/
21+
22+
#include "../../SDL_internal.h"
23+
#include "../SDL_syslocale.h"
24+
25+
#include <psputility.h>
26+
27+
void SDL_SYS_GetPreferredLocales(char *buf, size_t buflen)
28+
{
29+
int current_locale_int = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH;
30+
31+
SDL_assert(buflen > 0);
32+
33+
sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &current_locale_int);
34+
switch(current_locale_int) {
35+
case PSP_SYSTEMPARAM_LANGUAGE_JAPANESE:
36+
SDL_strlcpy(buf, "ja_JP", buflen);
37+
break;
38+
case PSP_SYSTEMPARAM_LANGUAGE_ENGLISH:
39+
SDL_strlcpy(buf, "en_US", buflen);
40+
break;
41+
case PSP_SYSTEMPARAM_LANGUAGE_FRENCH:
42+
SDL_strlcpy(buf, "fr_FR", buflen);
43+
break;
44+
case PSP_SYSTEMPARAM_LANGUAGE_SPANISH:
45+
SDL_strlcpy(buf, "es_ES", buflen);
46+
break;
47+
case PSP_SYSTEMPARAM_LANGUAGE_GERMAN:
48+
SDL_strlcpy(buf, "de_DE", buflen);
49+
break;
50+
case PSP_SYSTEMPARAM_LANGUAGE_ITALIAN:
51+
SDL_strlcpy(buf, "it_IT", buflen);
52+
break;
53+
case PSP_SYSTEMPARAM_LANGUAGE_DUTCH:
54+
SDL_strlcpy(buf, "nl_NL", buflen);
55+
break;
56+
case PSP_SYSTEMPARAM_LANGUAGE_PORTUGUESE:
57+
SDL_strlcpy(buf, "pt_PT", buflen);
58+
break;
59+
case PSP_SYSTEMPARAM_LANGUAGE_RUSSIAN:
60+
SDL_strlcpy(buf, "ru_RU", buflen);
61+
break;
62+
case PSP_SYSTEMPARAM_LANGUAGE_KOREAN:
63+
SDL_strlcpy(buf, "ko_KR", buflen);
64+
break;
65+
case PSP_SYSTEMPARAM_LANGUAGE_CHINESE_TRADITIONAL:
66+
SDL_strlcpy(buf, "zh_CH", buflen);
67+
break;
68+
case PSP_SYSTEMPARAM_LANGUAGE_CHINESE_SIMPLIFIED:
69+
SDL_strlcpy(buf, "zh_TW", buflen);
70+
break;
71+
default:
72+
SDL_strlcpy(buf, "en_US", buflen);
73+
break;
74+
}
75+
}
76+
77+
/* vi: set ts=4 sw=4 expandtab: */

0 commit comments

Comments
 (0)