mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-20 01:24:18 +00:00
added country flags to language selectors
This commit is contained in:
parent
38202d9736
commit
5f4a5b3366
|
@ -3,63 +3,84 @@
|
|||
|
||||
bosnian
|
||||
== Bosanski
|
||||
== 70
|
||||
|
||||
brazilian_portuguese
|
||||
== Português brasileiro
|
||||
== 76
|
||||
|
||||
bulgarian
|
||||
== Български
|
||||
== 100
|
||||
|
||||
czech
|
||||
== Česky
|
||||
== 203
|
||||
|
||||
danish
|
||||
== Dansk
|
||||
== 208
|
||||
|
||||
dutch
|
||||
== Nederlands
|
||||
== 528
|
||||
|
||||
finnish
|
||||
== Suomi
|
||||
== 246
|
||||
|
||||
french
|
||||
== Français
|
||||
== 250
|
||||
|
||||
german
|
||||
== Deutsch
|
||||
== 276
|
||||
|
||||
italian
|
||||
== Italiano
|
||||
== 380
|
||||
|
||||
norwegian
|
||||
== Norsk
|
||||
== 578
|
||||
|
||||
polish
|
||||
== Polski
|
||||
== 616
|
||||
|
||||
portuguese
|
||||
== Português
|
||||
== 620
|
||||
|
||||
romanian
|
||||
== Română
|
||||
== 642
|
||||
|
||||
russian
|
||||
== Русский
|
||||
== 643
|
||||
|
||||
serbian
|
||||
== Srpski
|
||||
== 688
|
||||
|
||||
slovak
|
||||
== Slovensky
|
||||
== 703
|
||||
|
||||
spanish
|
||||
== Español
|
||||
== 724
|
||||
|
||||
swedish
|
||||
== Svenska
|
||||
== 752
|
||||
|
||||
turkish
|
||||
== Türkçe
|
||||
== 792
|
||||
|
||||
ukrainian
|
||||
== Українська
|
||||
== 804
|
||||
|
|
|
@ -812,10 +812,11 @@ class CLanguage
|
|||
{
|
||||
public:
|
||||
CLanguage() {}
|
||||
CLanguage(const char *n, const char *f) : m_Name(n), m_FileName(f) {}
|
||||
CLanguage(const char *n, const char *f, int Code) : m_Name(n), m_FileName(f), m_CountryCode(Code) {}
|
||||
|
||||
string m_Name;
|
||||
string m_FileName;
|
||||
int m_CountryCode;
|
||||
|
||||
bool operator<(const CLanguage &Other) { return m_Name < Other.m_Name; }
|
||||
};
|
||||
|
@ -830,6 +831,7 @@ void LoadLanguageIndexfile(IStorage *pStorage, IConsole *pConsole, sorted_array<
|
|||
}
|
||||
|
||||
char aOrigin[128];
|
||||
char aReplacement[128];
|
||||
CLineReader LineReader;
|
||||
LineReader.Init(File);
|
||||
char *pLine;
|
||||
|
@ -839,14 +841,32 @@ void LoadLanguageIndexfile(IStorage *pStorage, IConsole *pConsole, sorted_array<
|
|||
continue;
|
||||
|
||||
str_copy(aOrigin, pLine, sizeof(aOrigin));
|
||||
char *pReplacement = LineReader.Get();
|
||||
if(!pReplacement)
|
||||
|
||||
pLine = LineReader.Get();
|
||||
if(!pLine)
|
||||
{
|
||||
pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "localization", "unexpected end of index file");
|
||||
break;
|
||||
}
|
||||
|
||||
if(pReplacement[0] != '=' || pReplacement[1] != '=' || pReplacement[2] != ' ')
|
||||
if(pLine[0] != '=' || pLine[1] != '=' || pLine[2] != ' ')
|
||||
{
|
||||
char aBuf[128];
|
||||
str_format(aBuf, sizeof(aBuf), "malform replacement for index '%s'", aOrigin);
|
||||
pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "localization", aBuf);
|
||||
(void)LineReader.Get();
|
||||
continue;
|
||||
}
|
||||
str_copy(aReplacement, pLine+3, sizeof(aReplacement));
|
||||
|
||||
pLine = LineReader.Get();
|
||||
if(!pLine)
|
||||
{
|
||||
pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "localization", "unexpected end of index file");
|
||||
break;
|
||||
}
|
||||
|
||||
if(pLine[0] != '=' || pLine[1] != '=' || pLine[2] != ' ')
|
||||
{
|
||||
char aBuf[128];
|
||||
str_format(aBuf, sizeof(aBuf), "malform replacement for index '%s'", aOrigin);
|
||||
|
@ -856,7 +876,7 @@ void LoadLanguageIndexfile(IStorage *pStorage, IConsole *pConsole, sorted_array<
|
|||
|
||||
char aFileName[128];
|
||||
str_format(aFileName, sizeof(aFileName), "languages/%s.txt", aOrigin);
|
||||
pLanguages->add(CLanguage(pReplacement+3, aFileName));
|
||||
pLanguages->add(CLanguage(aReplacement, aFileName, str_toint(pLine+3)));
|
||||
}
|
||||
io_close(File);
|
||||
}
|
||||
|
@ -870,7 +890,7 @@ void CMenus::RenderLanguageSelection(CUIRect MainView)
|
|||
|
||||
if(s_Languages.size() == 0)
|
||||
{
|
||||
s_Languages.add(CLanguage("English", ""));
|
||||
s_Languages.add(CLanguage("English", "", 826));
|
||||
LoadLanguageIndexfile(Storage(), Console(), &s_Languages);
|
||||
for(int i = 0; i < s_Languages.size(); i++)
|
||||
if(str_comp(s_Languages[i].m_FileName, g_Config.m_ClLanguagefile) == 0)
|
||||
|
@ -889,8 +909,20 @@ void CMenus::RenderLanguageSelection(CUIRect MainView)
|
|||
CListboxItem Item = UiDoListboxNextItem(&r.front());
|
||||
|
||||
if(Item.m_Visible)
|
||||
{
|
||||
CUIRect Rect;
|
||||
Item.m_Rect.VSplitLeft(Item.m_Rect.h*2.0f, &Rect, &Item.m_Rect);
|
||||
Rect.VMargin(6.0f, &Rect);
|
||||
Rect.HMargin(3.0f, &Rect);
|
||||
Graphics()->TextureSet(m_pClient->m_pCountryFlags->GetByCountryCode(r.front().m_CountryCode)->m_Texture);
|
||||
Graphics()->QuadsBegin();
|
||||
IGraphics::CQuadItem QuadItem(Rect.x, Rect.y, Rect.w, Rect.h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
Item.m_Rect.HSplitTop(2.0f, 0, &Item.m_Rect);
|
||||
UI()->DoLabelScaled(&Item.m_Rect, r.front().m_Name, 16.0f, -1);
|
||||
}
|
||||
}
|
||||
|
||||
s_SelectedLanguage = UiDoListboxEnd(&s_ScrollValue, 0);
|
||||
|
||||
|
|
Loading…
Reference in a new issue