Skip to content

Commit 73c6457

Browse files
Translations (PR #2505)
1 parent 7f802e6 commit 73c6457

File tree

879 files changed

+148847
-125011
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

879 files changed

+148847
-125011
lines changed

Client/core/CLocalization.cpp

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,17 @@ SString CLocalization::ValidateLocale(SString strLocale)
4444
{
4545
if (strLocale.empty() && (CClientVariables::GetSingletonPtr() == nullptr || !CVARS_GET("locale", strLocale)))
4646
strLocale = "en_US";
47+
48+
// NOTE(patrik): Convert old two letter language to locale to fix any issues with flags
49+
if (strLocale == "en")
50+
strLocale = "en_US";
51+
else if (strLocale == "fi")
52+
strLocale = "fi_FI";
53+
else if (strLocale == "az")
54+
strLocale = "az_AZ";
55+
else if (strLocale == "ka")
56+
strLocale = "ka_GE";
57+
4758
Language Lang = Language::from_name(strLocale);
4859
Lang = Lang ? Lang : Language::from_name("en_US");
4960
return Lang.str();
@@ -128,7 +139,9 @@ std::vector<SString> CLocalization::GetAvailableLocales()
128139
{
129140
std::vector<SString> localeList = {"en_US"};
130141
for (const auto& language : m_DictManager.get_languages(MTA_LOCALE_TEXTDOMAIN))
131-
localeList.push_back(language.str());
142+
// To avoid duplicates
143+
if (std::find(localeList.begin(), localeList.end(), language.str()) == localeList.end())
144+
localeList.push_back(language.str());
132145
// Alpha sort
133146
std::sort(localeList.begin(), localeList.end());
134147
return localeList;
@@ -153,9 +166,10 @@ SString CLocalization::GetLanguageName()
153166
}
154167

155168
// Get the file directory of the current language
156-
SString CLocalization::GetLanguageDirectory()
169+
SString CLocalization::GetLanguageDirectory(CLanguage* pLanguage)
157170
{
158-
SString strFullPath = m_pCurrentLang->GetDictionary().get_filepath();
171+
CLanguage* pSelectLang = pLanguage != nullptr ? pLanguage : m_pCurrentLang;
172+
SString strFullPath = pSelectLang->GetDictionary().get_filepath();
159173

160174
// Replace all backslashes with forward slashes
161175
int idx = 0;

Client/core/CLocalization.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class CLocalization : public CLocalizationInterface
3131
SString GetTranslators();
3232
std::vector<SString> GetAvailableLocales();
3333
bool IsLocalized();
34-
SString GetLanguageDirectory();
34+
SString GetLanguageDirectory(CLanguage* pLanguage = nullptr);
3535
SString GetLanguageCode();
3636
SString GetLanguageName();
3737
SString ValidateLocale(SString strLocale);

Client/core/CMainMenu.cpp

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
#define CORE_MTA_LOGO "cgui\\images\\background_logo.png"
4747
#define CORE_MTA_FILLER "cgui\\images\\mta_filler.png"
4848
#define CORE_MTA_VERSION "cgui\\images\\version.png"
49-
#define CORE_MTA_LATEST_NEWS "cgui\\images\\latest_news.png"
5049

5150
static int WaitForMenu = 0;
5251
static const SColor headlineColors[] = {SColorRGBA(233, 234, 106, 255), SColorRGBA(233 / 6 * 4, 234 / 6 * 4, 106 / 6 * 4, 255),
@@ -209,21 +208,28 @@ CMainMenu::CMainMenu(CGUI* pManager)
209208
m_pMenuArea->SetMouseEnterHandler(GUI_CALLBACK(&CMainMenu::OnMenuEnter, this));
210209
m_pMenuArea->SetMouseLeaveHandler(GUI_CALLBACK(&CMainMenu::OnMenuExit, this));
211210

212-
float fDrawSizeX = (335 / NATIVE_RES_X) * m_iMenuSizeX; // Right aligned
213-
float fDrawSizeY = (53 / NATIVE_RES_Y) * m_iMenuSizeY;
214-
float fDrawPosX = 0.83f * m_iMenuSizeX - fDrawSizeX;
215-
float fDrawPosY = 0.60f * m_iMenuSizeY;
216211
m_pLatestNews = reinterpret_cast<CGUIStaticImage*>(pManager->CreateStaticImage());
217-
m_pLatestNews->LoadFromFile(CORE_MTA_LATEST_NEWS);
212+
if (!m_pLatestNews->LoadFromFile(PathJoin(g_pCore->GetLocalization()->GetLanguageDirectory(), "latest_news.png")))
213+
{
214+
// Load en_US if no localization is available
215+
auto pLanguage = g_pLocalization->GetLanguage("en_US");
216+
m_pLatestNews->LoadFromFile(PathJoin(g_pCore->GetLocalization()->GetLanguageDirectory(pLanguage), "latest_news.png"));
217+
}
218218
m_pLatestNews->SetParent(m_pCanvas);
219-
m_pLatestNews->SetPosition(CVector2D(fDrawPosX, fDrawPosY), false);
220-
m_pLatestNews->SetSize(CVector2D(fDrawSizeX, fDrawSizeY), false);
221219
m_pLatestNews->SetProperty("InheritsAlpha", "False");
220+
CVector2D vecNativeSize;
221+
m_pLatestNews->GetNativeSize(vecNativeSize);
222+
float fDrawSizeX = (vecNativeSize.fX / NATIVE_RES_X) * m_iMenuSizeX;
223+
float fDrawSizeY = (vecNativeSize.fY / NATIVE_RES_Y) * m_iMenuSizeY;
224+
m_pLatestNews->SetSize(CVector2D(fDrawSizeX, fDrawSizeY), false);
225+
float fDrawPosX = 0.83f * m_iMenuSizeX - fDrawSizeX; // Right aligned
226+
float fDrawPosY = 0.61f * m_iMenuSizeY;
227+
m_pLatestNews->SetPosition(CVector2D(fDrawPosX, fDrawPosY), false);
222228
m_pLatestNews->SetVisible(false);
223229

224230
// Create news item stuff
225231
fDrawPosX -= 25;
226-
fDrawPosY += fDrawSizeY - 8;
232+
fDrawPosY += fDrawSizeY + 3;
227233
for (uint i = 0; i < CORE_MTA_NEWS_ITEMS; i++)
228234
{
229235
fDrawPosY += 20;
@@ -1007,13 +1013,12 @@ sMenuItem* CMainMenu::CreateItem(unsigned char menuType, const char* szFilename,
10071013
{
10081014
CGUIStaticImage* pImage = reinterpret_cast<CGUIStaticImage*>(m_pManager->CreateStaticImage());
10091015

1010-
if (g_pCore->GetLocalization()->IsLocalized())
1016+
if (!pImage->LoadFromFile(PathJoin(g_pCore->GetLocalization()->GetLanguageDirectory(), szFilename)))
10111017
{
1012-
if (!pImage->LoadFromFile(PathJoin(g_pCore->GetLocalization()->GetLanguageDirectory(), szFilename)))
1013-
pImage->LoadFromFile(PathJoin("cgui/images", szFilename));
1018+
// Load en_US if no localization is available
1019+
auto pLanguage = g_pLocalization->GetLanguage("en_US");
1020+
pImage->LoadFromFile(PathJoin(g_pCore->GetLocalization()->GetLanguageDirectory(pLanguage), szFilename));
10141021
}
1015-
else
1016-
pImage->LoadFromFile(PathJoin("cgui/images", szFilename));
10171022

10181023
// Make our positions absolute
10191024
int iPosX = vecRelPosition.fX * m_iMenuSizeX;

Client/core/CSettings.cpp

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ void CSettings::CreateGUI()
159159
// Mouse Options
160160
m_pControlsMouseLabel = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabControls, _("Mouse options")));
161161
m_pControlsMouseLabel->SetPosition(CVector2D(vecTemp.fX + 11, vecTemp.fY));
162-
m_pControlsMouseLabel->AutoSize(NULL, 5.0f);
162+
m_pControlsMouseLabel->AutoSize(NULL, 20.0f);
163163
m_pControlsMouseLabel->SetFont("default-bold-small");
164164
vecTemp.fY += 18;
165165

@@ -177,7 +177,7 @@ void CSettings::CreateGUI()
177177
m_pFlyWithMouse->AutoSize(NULL, 20.0f);
178178

179179
// MouseSensitivity
180-
vecTemp.fY += 52.0f;
180+
vecTemp.fY += 54.0f;
181181
m_pLabelMouseSensitivity = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabControls, _("Mouse sensitivity:")));
182182
m_pLabelMouseSensitivity->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY));
183183
m_pLabelMouseSensitivity->AutoSize();
@@ -193,7 +193,7 @@ void CSettings::CreateGUI()
193193
m_pLabelMouseSensitivityValue->SetPosition(CVector2D(vecTemp.fX + vecSize.fX + 5.0f, vecTemp.fY));
194194
m_pLabelMouseSensitivityValue->AutoSize("100%");
195195
vecTemp.fX = 16;
196-
vecTemp.fY += 26.f;
196+
vecTemp.fY += 24.f;
197197

198198
// VerticalAimSensitivity
199199
m_pLabelVerticalAimSensitivity = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabControls, _("Vertical aim sensitivity:")));
@@ -272,12 +272,12 @@ void CSettings::CreateGUI()
272272
m_pEditSaturation->SetTextChangedHandler(GUI_CALLBACK(&CSettings::OnJoypadTextChanged, this));
273273

274274
CGUILabel* pLabelDeadZone = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabControls, _("Dead Zone")));
275-
pLabelDeadZone->SetPosition(m_pEditDeadzone->GetPosition() + CVector2D(52.f, -1.f));
275+
pLabelDeadZone->SetPosition(m_pEditDeadzone->GetPosition() + CVector2D(52.f, 1.f));
276276
pLabelDeadZone->AutoSize();
277277
pLabelDeadZone->SetVerticalAlign(CGUI_ALIGN_VERTICALCENTER);
278278

279279
CGUILabel* pLabelSaturation = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabControls, _("Saturation")));
280-
pLabelSaturation->SetPosition(m_pEditSaturation->GetPosition() + CVector2D(52.f, -1.f));
280+
pLabelSaturation->SetPosition(m_pEditSaturation->GetPosition() + CVector2D(52.f, 1.f));
281281
pLabelSaturation->AutoSize();
282282
pLabelSaturation->SetVerticalAlign(CGUI_ALIGN_VERTICALCENTER);
283283
vecTemp.fY += 106;
@@ -526,7 +526,7 @@ void CSettings::CreateGUI()
526526
m_pAudioRadioLabel = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabAudio, _("Radio options")));
527527
m_pAudioRadioLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 30.0f), false);
528528
m_pAudioRadioLabel->GetPosition(vecTemp, false);
529-
m_pAudioRadioLabel->AutoSize(NULL, 10.0f);
529+
m_pAudioRadioLabel->AutoSize(NULL, 20.0f);
530530
m_pAudioRadioLabel->SetFont("default-bold-small");
531531

532532
m_pCheckBoxAudioEqualizer = reinterpret_cast<CGUICheckBox*>(pManager->CreateCheckBox(pTabAudio, _("Radio Equalizer"), true));
@@ -542,7 +542,7 @@ void CSettings::CreateGUI()
542542
m_pAudioUsertrackLabel = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabAudio, _("Usertrack options")));
543543
m_pAudioUsertrackLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 30.0f), false);
544544
m_pAudioUsertrackLabel->GetPosition(vecTemp, false);
545-
m_pAudioUsertrackLabel->AutoSize(NULL, 10.0f);
545+
m_pAudioUsertrackLabel->AutoSize(NULL, 20.0f);
546546
m_pAudioUsertrackLabel->SetFont("default-bold-small");
547547

548548
m_pLabelUserTrackMode = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabAudio, _("Play mode:")));
@@ -568,7 +568,7 @@ void CSettings::CreateGUI()
568568
m_pAudioMuteLabel = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabAudio, _("Mute options")));
569569
m_pAudioMuteLabel->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 52.0f));
570570
m_pAudioMuteLabel->GetPosition(vecTemp, false);
571-
m_pAudioMuteLabel->AutoSize(NULL, 5.0f);
571+
m_pAudioMuteLabel->AutoSize(NULL, 20.0f);
572572
m_pAudioMuteLabel->SetFont("default-bold-small");
573573

574574
m_pCheckBoxMuteMaster = reinterpret_cast<CGUICheckBox*>(pManager->CreateCheckBox(pTabAudio, _("Mute All sounds when minimized"), true));
@@ -903,16 +903,16 @@ void CSettings::CreateGUI()
903903
m_pLabelBrowserCustomBlacklist = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(m_pTabBrowser, _("Custom blacklist")));
904904
m_pLabelBrowserCustomBlacklist->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 30.0f));
905905
m_pLabelBrowserCustomBlacklist->GetPosition(vecTemp);
906-
m_pLabelBrowserCustomBlacklist->AutoSize(NULL, 5.0f);
906+
m_pLabelBrowserCustomBlacklist->AutoSize(NULL, 20.0f);
907907
m_pLabelBrowserCustomBlacklist->SetFont("default-bold-small");
908908

909909
m_pEditBrowserBlacklistAdd = reinterpret_cast<CGUIEdit*>(pManager->CreateEdit(m_pTabBrowser));
910910
m_pEditBrowserBlacklistAdd->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 25.0f));
911911
m_pEditBrowserBlacklistAdd->GetPosition(vecTemp);
912-
m_pEditBrowserBlacklistAdd->SetSize(CVector2D(191.0f, 22.0f));
912+
m_pEditBrowserBlacklistAdd->SetSize(CVector2D(209.0f, 22.0f));
913913

914914
m_pLabelBrowserBlacklistAdd = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(m_pEditBrowserBlacklistAdd, _("Enter a domain e.g. google.com")));
915-
m_pLabelBrowserBlacklistAdd->SetPosition(CVector2D(10, 3), false);
915+
m_pLabelBrowserBlacklistAdd->SetPosition(CVector2D(10.0f, 3.0f), false);
916916
m_pLabelBrowserBlacklistAdd->SetTextColor(0, 0, 0);
917917
m_pLabelBrowserBlacklistAdd->SetSize(CVector2D(1, 1), true);
918918
m_pLabelBrowserBlacklistAdd->SetAlpha(0.7f);
@@ -921,12 +921,12 @@ void CSettings::CreateGUI()
921921

922922
m_pButtonBrowserBlacklistAdd = reinterpret_cast<CGUIButton*>(pManager->CreateButton(m_pTabBrowser, _("Block")));
923923
m_pButtonBrowserBlacklistAdd->SetPosition(CVector2D(vecTemp.fX + m_pEditBrowserBlacklistAdd->GetSize().fX + 2.0f, vecTemp.fY));
924-
m_pButtonBrowserBlacklistAdd->SetSize(CVector2D(64.0f, 22.0f));
924+
m_pButtonBrowserBlacklistAdd->SetSize(CVector2D(90.0f, 22.0f));
925925

926926
m_pGridBrowserBlacklist = reinterpret_cast<CGUIGridList*>(pManager->CreateGridList(m_pTabBrowser));
927927
m_pGridBrowserBlacklist->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 32.0f));
928928
m_pGridBrowserBlacklist->GetPosition(vecTemp);
929-
m_pGridBrowserBlacklist->SetSize(CVector2D(256.0f, 150.0f));
929+
m_pGridBrowserBlacklist->SetSize(CVector2D(300.0f, 150.0f));
930930
m_pGridBrowserBlacklist->AddColumn(_("Domain"), 0.9f);
931931

932932
m_pButtonBrowserBlacklistRemove = reinterpret_cast<CGUIButton*>(pManager->CreateButton(m_pTabBrowser, _("Remove domain")));
@@ -936,18 +936,18 @@ void CSettings::CreateGUI()
936936
m_pLabelBrowserCustomBlacklist->GetPosition(vecTemp); // Reset vecTemp
937937

938938
m_pLabelBrowserCustomWhitelist = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(m_pTabBrowser, _("Custom whitelist")));
939-
m_pLabelBrowserCustomWhitelist->SetPosition(CVector2D(292.0f, vecTemp.fY));
939+
m_pLabelBrowserCustomWhitelist->SetPosition(CVector2D(vecTemp.fX + 300.0f + 19.0f, vecTemp.fY));
940940
m_pLabelBrowserCustomWhitelist->GetPosition(vecTemp);
941-
m_pLabelBrowserCustomWhitelist->AutoSize(NULL, 5.0f);
941+
m_pLabelBrowserCustomWhitelist->AutoSize(NULL, 20.0f);
942942
m_pLabelBrowserCustomWhitelist->SetFont("default-bold-small");
943943

944944
m_pEditBrowserWhitelistAdd = reinterpret_cast<CGUIEdit*>(pManager->CreateEdit(m_pTabBrowser));
945945
m_pEditBrowserWhitelistAdd->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 25.0f));
946946
m_pEditBrowserWhitelistAdd->GetPosition(vecTemp);
947-
m_pEditBrowserWhitelistAdd->SetSize(CVector2D(191.0f, 22.0f));
947+
m_pEditBrowserWhitelistAdd->SetSize(CVector2D(209.0f, 22.0f));
948948

949949
m_pLabelBrowserWhitelistAdd = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(m_pEditBrowserWhitelistAdd, _("Enter a domain e.g. google.com")));
950-
m_pLabelBrowserWhitelistAdd->SetPosition(CVector2D(10, 3), false);
950+
m_pLabelBrowserWhitelistAdd->SetPosition(CVector2D(10.0f, 3.0f), false);
951951
m_pLabelBrowserWhitelistAdd->SetTextColor(0, 0, 0);
952952
m_pLabelBrowserWhitelistAdd->SetSize(CVector2D(1, 1), true);
953953
m_pLabelBrowserWhitelistAdd->SetAlpha(0.7f);
@@ -956,12 +956,12 @@ void CSettings::CreateGUI()
956956

957957
m_pButtonBrowserWhitelistAdd = reinterpret_cast<CGUIButton*>(pManager->CreateButton(m_pTabBrowser, _("Allow")));
958958
m_pButtonBrowserWhitelistAdd->SetPosition(CVector2D(vecTemp.fX + m_pEditBrowserWhitelistAdd->GetSize().fX + 2.0f, vecTemp.fY));
959-
m_pButtonBrowserWhitelistAdd->SetSize(CVector2D(64.0f, 22.0f));
959+
m_pButtonBrowserWhitelistAdd->SetSize(CVector2D(90.0f, 22.0f));
960960

961961
m_pGridBrowserWhitelist = reinterpret_cast<CGUIGridList*>(pManager->CreateGridList(m_pTabBrowser));
962962
m_pGridBrowserWhitelist->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY + 32.0f));
963963
m_pGridBrowserWhitelist->GetPosition(vecTemp);
964-
m_pGridBrowserWhitelist->SetSize(CVector2D(256.0f, 150.0f));
964+
m_pGridBrowserWhitelist->SetSize(CVector2D(300.0f, 150.0f));
965965
m_pGridBrowserWhitelist->AddColumn(_("Domain"), 0.9f);
966966

967967
m_pButtonBrowserWhitelistRemove = reinterpret_cast<CGUIButton*>(pManager->CreateButton(m_pTabBrowser, _("Remove domain")));
@@ -1124,18 +1124,17 @@ void CSettings::CreateGUI()
11241124
m_pWin8Label = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabAdvanced, _("Windows 8 compatibility:")));
11251125
m_pWin8Label->SetPosition(CVector2D(vecTemp.fX, vecTemp.fY));
11261126
m_pWin8Label->AutoSize();
1127-
vecTemp.fX += 20;
11281127

11291128
m_pWin8ColorCheckBox = reinterpret_cast<CGUICheckBox*>(pManager->CreateCheckBox(pTabAdvanced, _("16-bit color")));
1130-
m_pWin8ColorCheckBox->SetPosition(CVector2D(vecTemp.fX + fIndentX, vecTemp.fY - 1.0f));
1129+
m_pWin8ColorCheckBox->SetPosition(CVector2D(vecTemp.fX + fIndentX, vecTemp.fY));
11311130
m_pWin8ColorCheckBox->AutoSize(NULL, 20.0f);
1132-
vecTemp.fX += 90;
1131+
vecTemp.fX += 140;
11331132

11341133
m_pWin8MouseCheckBox = reinterpret_cast<CGUICheckBox*>(pManager->CreateCheckBox(pTabAdvanced, _("Mouse fix")));
1135-
m_pWin8MouseCheckBox->SetPosition(CVector2D(vecTemp.fX + fIndentX, vecTemp.fY - 1.0f));
1134+
m_pWin8MouseCheckBox->SetPosition(CVector2D(vecTemp.fX + fIndentX, vecTemp.fY));
11361135
m_pWin8MouseCheckBox->AutoSize(NULL, 20.0f);
11371136
vecTemp.fY += fLineHeight;
1138-
vecTemp.fX -= 110;
1137+
vecTemp.fX -= 140;
11391138

11401139
// Hide if not Win8
11411140
if (atoi(GetApplicationSetting("real-os-version")) != 8)
@@ -2318,7 +2317,7 @@ void CSettings::CreateInterfaceTabGUI()
23182317
pLabel = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(pTabOptions, _("Options")));
23192318
pLabel->SetPosition(CVector2D(fMarginX, 10.0f));
23202319
pLabel->GetPosition(vecTemp);
2321-
pLabel->AutoSize(NULL, 5.0f);
2320+
pLabel->AutoSize(NULL, 20.0f);
23222321
pLabel->SetFont("default-bold-small");
23232322

23242323
m_pChatCssBackground = reinterpret_cast<CGUICheckBox*>(pManager->CreateCheckBox(pTabOptions, _("Hide background when not typing")));

Client/loader/MainFunctions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class CLocalizationDummy : public CLocalizationInterface
3434

3535
virtual std::vector<SString> GetAvailableLocales() { return std::vector<SString>(); }
3636
virtual bool IsLocalized() { return false; }
37-
virtual SString GetLanguageDirectory() { return ""; }
37+
virtual SString GetLanguageDirectory(CLanguage* pLanguage = nullptr) { return ""; }
3838
virtual SString GetLanguageCode() { return "en_US"; }
3939
virtual SString GetLanguageName() { return "English"; }
4040
};

Client/sdk/core/CLocalizationInterface.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
#define _tcn g_pLocalization->TranslatePluralWithContext
2222
#define _td // Dummy translation tag for compile-time use only. Translation templates are generated by this, but no source code interaction
2323

24+
class CLanguage;
25+
2426
class CLocalizationInterface
2527
{
2628
public:
@@ -31,7 +33,7 @@ class CLocalizationInterface
3133

3234
virtual std::vector<SString> GetAvailableLocales() = 0;
3335
virtual bool IsLocalized() = 0;
34-
virtual SString GetLanguageDirectory() = 0;
36+
virtual SString GetLanguageDirectory(CLanguage* pLanguage = nullptr) = 0;
3537
virtual SString GetLanguageCode() = 0;
3638
virtual SString GetLanguageName() = 0;
3739
};
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)