Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Вниз

Как изменить цвет меню c помошью ф-й WinAPI?   Найти похожие ветки 

 
Maxus   (2003-05-27 21:15) [0]

Ребята, задаю Вам этот вопрос, потому что надежда осталась только на Вас :))
Столкнулся со следующей проблемой: пишу на Visual C++ (просьба не ругаться) без использования MFC и иже с ними, т.е. в основном приходится писать на WinAPI. Поставили следующее требование: хотим чтобы меню программы было другого цвета (желтого например).
Что я перепробовал:
1) SetSysColors(...) - не подходит т.к. хачит цвета меню во всей системе :(
2) чудесная есть командочка SetMenuInfo(hMenu,MENUINFO) - которая тоже к сожалению не подходит т.к. поддерживается не всеми операционками (2000, 98)
3) отрисовка меню самому: MFT_OWNERDRAW - здесь сходу тоже не получилось, а именно: не получилось сделать СРАЗУ ВСЕ меню типа OWNERDRAW, пришлось делать каждый элемент меню вручную :( естественно после этого нужным мне цветом рисуются только элементы меню, а полоска меню, остается серой :(( Причем выглядит это настолько кустарно, что понимаешь, что делаешь что-то не совсем так ;)

Вопрос такой: можно ли изменить цвет меню каким-нибудь более красивым или хотя бы более эффективным способом?


 
Song   (2003-05-27 21:17) [1]

Скачать другое наиболее подходящее меню. Поверь: это легче


 
Nick Denry   (2003-05-28 21:43) [2]

Можно, подожди еще день, плз, а то я протебя забыл.........
А ввобще ладно, держи что есть, если непонятно пиши еще.
А вообще на wm_draw проверяешь: if lparam(PDrawItemStruct)=ODT_MENU не для каждого элемента, а для типа контрола, вот тебе код, модифицируй як хочешь!


WM_DRAWITEM:
begin

if PDrawItemStruct(lparam).hwndItem=button1 then begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonQuit);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
if PDrawItemStruct(lparam).itemAction=ODA_SELECT then
begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_NULL, 0, 0)));
if (PDrawItemStruct(lparam).itemState and ODS_SELECTED) <> 0 then begin
{TBmp:=bmpButtonQuit;
bmpButtonQuit:=bmpButtonQuitP;
bmpButtonQuitP:=Tbmp;}
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonQuitP);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end else begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonQuit);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end;
end;
end;
if PDrawItemStruct(lparam).hwndItem=button2 then begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonHide);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
if PDrawItemStruct(lparam).itemAction=ODA_SELECT then
begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_NULL, 0, 0)));
if (PDrawItemStruct(lparam).itemState and ODS_SELECTED) <> 0 then begin
{TBmp:=bmpButtonQuit;
bmpButtonQuit:=bmpButtonQuitP;
bmpButtonQuitP:=Tbmp;}
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonHideP);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end else begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonHide);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end;
end;
end;

to be continied.....


 
Nick Denry   (2003-05-28 21:43) [3]

Можно, подожди еще день, плз, а то я протебя забыл.........
А ввобще ладно, держи что есть, если непонятно пиши еще.
А вообще на wm_draw проверяешь: if lparam(PDrawItemStruct)=ODT_MENU не для каждого элемента, а для типа контрола, вот тебе код, модифицируй як хочешь!


WM_DRAWITEM:
begin

if PDrawItemStruct(lparam).hwndItem=button1 then begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonQuit);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
if PDrawItemStruct(lparam).itemAction=ODA_SELECT then
begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_NULL, 0, 0)));
if (PDrawItemStruct(lparam).itemState and ODS_SELECTED) <> 0 then begin
{TBmp:=bmpButtonQuit;
bmpButtonQuit:=bmpButtonQuitP;
bmpButtonQuitP:=Tbmp;}
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonQuitP);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end else begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonQuit);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end;
end;
end;
if PDrawItemStruct(lparam).hwndItem=button2 then begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonHide);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
if PDrawItemStruct(lparam).itemAction=ODA_SELECT then
begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_NULL, 0, 0)));
if (PDrawItemStruct(lparam).itemState and ODS_SELECTED) <> 0 then begin
{TBmp:=bmpButtonQuit;
bmpButtonQuit:=bmpButtonQuitP;
bmpButtonQuitP:=Tbmp;}
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonHideP);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end else begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonHide);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end;
end;
end;

to be continied.....


 
Nick Denry   (2003-05-28 21:45) [4]

в продолжение...


if PDrawItemStruct(lparam).hwndItem=button3 then begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonSave);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
if PDrawItemStruct(lparam).itemAction=ODA_SELECT then
begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_NULL, 0, 0)));
if (PDrawItemStruct(lparam).itemState and ODS_SELECTED) <> 0 then begin

dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonSaveP);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end else begin
dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,bmpButtonSave);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left,PDrawItemStruct(lparam).rcItem.Top,32,
32,dcl,0,0,SrcCopy);
deletedc(dcl);
end;
end;
end;


if PDrawItemStruct(lparam).itemID=ID_RESTORE then begin
procDrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuOptions,bmpMenuOptionsH,"Options");
end;



if PDrawItemStruct(lparam).itemID=ID_MINIMIZE then begin
procDrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuHide,bmpMenuHideH,"Hide");
end;

if PDrawItemStruct(lparam).itemID=ID_QUIT then begin
procDrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuQuit,bmpMenuQuitH,"Exit");
end;


 
Nick Denry   (2003-05-28 21:47) [5]

продолжение 3.3


if PDrawItemStruct(lparam).itemID=ID_CLOSECD then begin
ProcDrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuCloseCD,bmpMenuCloseCDH,"Close CD");
{dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,btn3bmp);

BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left+2,PDrawItemStruct(lparam).rcItem.Top+1,32,
32,dcl,0,0,SrcCopy);
TextRect:=PDrawItemStruct(lparam).rcitem;
TextRect.Left:=TextRect.Left+36;
SetBkColor(PDrawItemStruct(lparam).HDC, RGB(0,128,0));
DrawText(PDrawItemStruct(lparam).hDC,PChar("Close CD"),Length("Close CD"),TextRect,
DT_SINGLELINE or DT_VCENTER or DT_Left);
deletedc(dcl);
if (PDrawItemStruct(lparam).itemAction=ODA_SELECT) then
begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_NULL, 0, 0)));
if ((PDrawItemStruct(lparam).itemState and ODS_SELECTED) <> 0)
then begin

SetTextColor(PDrawItemStruct(lparam).HDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(PDrawItemStruct(lparam).HDC, RGB(0,128,0));
brush:=CreateSolidBrush(RGB(0,255,0));

DeleteObject(SelectObject(PDrawItemStruct(lparam).HDC,brush));
DeleteObject(SelectObject(PDrawItemStruct(lparam).hDC,CreatePen(PS_SOLID ,0,RGB(0,128,0))));


end else begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).HDC, RGB(0,128,0)));
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_SOLID ,0 ,GetSysColor(COLOR_MENU))));
end;

Rectangle(PDrawItemStruct(lparam).HDC, PDrawItemStruct(lparam).rcItem.Left,
PDrawItemStruct(lparam).rcItem.Top
,PDrawItemStruct(lparam).rcItem.Right,
PDrawItemStruct(lparam).rcItem.Bottom);

dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,btn3bmp);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left+2,PDrawItemStruct(lparam).rcItem.Top+1,110,
32,dcl,0,0,SrcCopy);
TextRect:=PDrawItemStruct(lparam).rcitem;
TextRect.Left:=TextRect.Left+36;
DrawText(PDrawItemStruct(lparam).hDC,PChar("Close CD"),Length("Close CD"),TextRect,
DT_SINGLELINE or DT_VCENTER or DT_Left);
deletedc(dcl);

end;}
end;
if PDrawItemStruct(lparam).itemID=ID_OPENCD then begin
procDrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuOpenCD,bmpMenuOpenCDH,
"Open CD");
{dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,btn4bmp);

BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left+2,PDrawItemStruct(lparam).rcItem.Top+1,32,
32,dcl,0,0,SrcCopy);
TextRect:=PDrawItemStruct(lparam).rcitem;
TextRect.Left:=TextRect.Left+36;
DrawText(PDrawItemStruct(lparam).hDC,PChar("CD Open"),Length("CD Open"),TextRect,
DT_SINGLELINE or DT_VCENTER or DT_Left);
deletedc(dcl);
if PDrawItemStruct(lparam).itemAction=ODA_SELECT then
begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_NULL, 0, 0)));
if (PDrawItemStruct(lparam).itemState and ODS_SELECTED) <> 0 then begin

SetTextColor(PDrawItemStruct(lparam).HDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(PDrawItemStruct(lparam).HDC, GetSysColor(COLOR_HIGHLIGHT));

DeleteObject(SelectObject(PDrawItemStruct(lparam).HDC,GetSysColorBrush(COLOR_HIGHLIGHT)));
DeleteObject(SelectObject(PDrawItemStruct(lparam).hDC,CreatePen(PS_SOLID ,0,GetSysColor(COLOR_MENUTEXT))));


end else begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).HDC, GetSysColorBrush(COLOR_MENU)));
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_SOLID ,0 ,GetSysColor(COLOR_MENU))));
end;


Rectangle(PDrawItemStruct(lparam).HDC, PDrawItemStruct(lparam).rcItem.Left,
PDrawItemStruct(lparam).rcItem.Top
,PDrawItemStruct(lparam).rcItem.Right,
PDrawItemStruct(lparam).rcItem.Bottom);

dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,btn4bmp);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left+2,PDrawItemStruct(lparam).rcItem.Top+1,32,
32,dcl,0,0,SrcCopy);
TextRect:=PDrawItemStruct(lparam).rcitem;
TextRect.Left:=TextRect.Left+36;
DrawText(PDrawItemStruct(lparam).hDC,PChar("CD Open"),Length("CD Open"),TextRect,
DT_SINGLELINE or DT_VCENTER or DT_Left);
deletedc(dcl);

end;}

end;

{MessageBeep(mb_iconhand);}

{result:=SetBkColor(PDrawItemStruct(lparam).hDC, GetSysColor(COLOR_HIGHLIGHT));
if result=0 then MessageBox(MaINwND,PChar("4324234"),PChar("3424"),mb_ok);}
end;
end;


С уважением, Nick Denry.



 
Nick Denry   (2003-05-28 21:47) [6]

продолжение 3.3


if PDrawItemStruct(lparam).itemID=ID_CLOSECD then begin
ProcDrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuCloseCD,bmpMenuCloseCDH,"Close CD");
{dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,btn3bmp);

BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left+2,PDrawItemStruct(lparam).rcItem.Top+1,32,
32,dcl,0,0,SrcCopy);
TextRect:=PDrawItemStruct(lparam).rcitem;
TextRect.Left:=TextRect.Left+36;
SetBkColor(PDrawItemStruct(lparam).HDC, RGB(0,128,0));
DrawText(PDrawItemStruct(lparam).hDC,PChar("Close CD"),Length("Close CD"),TextRect,
DT_SINGLELINE or DT_VCENTER or DT_Left);
deletedc(dcl);
if (PDrawItemStruct(lparam).itemAction=ODA_SELECT) then
begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_NULL, 0, 0)));
if ((PDrawItemStruct(lparam).itemState and ODS_SELECTED) <> 0)
then begin

SetTextColor(PDrawItemStruct(lparam).HDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(PDrawItemStruct(lparam).HDC, RGB(0,128,0));
brush:=CreateSolidBrush(RGB(0,255,0));

DeleteObject(SelectObject(PDrawItemStruct(lparam).HDC,brush));
DeleteObject(SelectObject(PDrawItemStruct(lparam).hDC,CreatePen(PS_SOLID ,0,RGB(0,128,0))));


end else begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).HDC, RGB(0,128,0)));
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_SOLID ,0 ,GetSysColor(COLOR_MENU))));
end;

Rectangle(PDrawItemStruct(lparam).HDC, PDrawItemStruct(lparam).rcItem.Left,
PDrawItemStruct(lparam).rcItem.Top
,PDrawItemStruct(lparam).rcItem.Right,
PDrawItemStruct(lparam).rcItem.Bottom);

dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,btn3bmp);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left+2,PDrawItemStruct(lparam).rcItem.Top+1,110,
32,dcl,0,0,SrcCopy);
TextRect:=PDrawItemStruct(lparam).rcitem;
TextRect.Left:=TextRect.Left+36;
DrawText(PDrawItemStruct(lparam).hDC,PChar("Close CD"),Length("Close CD"),TextRect,
DT_SINGLELINE or DT_VCENTER or DT_Left);
deletedc(dcl);

end;}
end;
if PDrawItemStruct(lparam).itemID=ID_OPENCD then begin
procDrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuOpenCD,bmpMenuOpenCDH,
"Open CD");
{dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,btn4bmp);

BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left+2,PDrawItemStruct(lparam).rcItem.Top+1,32,
32,dcl,0,0,SrcCopy);
TextRect:=PDrawItemStruct(lparam).rcitem;
TextRect.Left:=TextRect.Left+36;
DrawText(PDrawItemStruct(lparam).hDC,PChar("CD Open"),Length("CD Open"),TextRect,
DT_SINGLELINE or DT_VCENTER or DT_Left);
deletedc(dcl);
if PDrawItemStruct(lparam).itemAction=ODA_SELECT then
begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_NULL, 0, 0)));
if (PDrawItemStruct(lparam).itemState and ODS_SELECTED) <> 0 then begin

SetTextColor(PDrawItemStruct(lparam).HDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(PDrawItemStruct(lparam).HDC, GetSysColor(COLOR_HIGHLIGHT));

DeleteObject(SelectObject(PDrawItemStruct(lparam).HDC,GetSysColorBrush(COLOR_HIGHLIGHT)));
DeleteObject(SelectObject(PDrawItemStruct(lparam).hDC,CreatePen(PS_SOLID ,0,GetSysColor(COLOR_MENUTEXT))));


end else begin
DeleteObject(SelectObject(PDrawItemStruct(lparam).HDC, GetSysColorBrush(COLOR_MENU)));
DeleteObject(SelectObject(PDrawItemStruct(lparam).hdc, CreatePen(PS_SOLID ,0 ,GetSysColor(COLOR_MENU))));
end;


Rectangle(PDrawItemStruct(lparam).HDC, PDrawItemStruct(lparam).rcItem.Left,
PDrawItemStruct(lparam).rcItem.Top
,PDrawItemStruct(lparam).rcItem.Right,
PDrawItemStruct(lparam).rcItem.Bottom);

dcl:=CreateCompatibleDC(menu_pstr.hdc);
SelectObject(dcl,btn4bmp);
BitBlt(PDrawItemStruct(lparam).hDC,PDrawItemStruct(lparam).rcItem.Left+2,PDrawItemStruct(lparam).rcItem.Top+1,32,
32,dcl,0,0,SrcCopy);
TextRect:=PDrawItemStruct(lparam).rcitem;
TextRect.Left:=TextRect.Left+36;
DrawText(PDrawItemStruct(lparam).hDC,PChar("CD Open"),Length("CD Open"),TextRect,
DT_SINGLELINE or DT_VCENTER or DT_Left);
deletedc(dcl);

end;}

end;

{MessageBeep(mb_iconhand);}

{result:=SetBkColor(PDrawItemStruct(lparam).hDC, GetSysColor(COLOR_HIGHLIGHT));
if result=0 then MessageBox(MaINwND,PChar("4324234"),PChar("3424"),mb_ok);}
end;
end;


С уважением, Nick Denry.



 
Maxus   (2003-05-30 12:42) [7]

Большое спасибо всем!!! ;)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.008 c
14-10364
shark
2003-07-18 21:48
2003.08.04
Delphi глючит


14-10414
DiamondShark
2003-07-17 10:43
2003.08.04
Задачка.


14-10421
Vlad Oshin
2003-07-17 15:50
2003.08.04
О законности


1-10191
New laymer
2003-07-23 08:54
2003.08.04
Массив


1-10262
strannic
2003-07-21 14:23
2003.08.04
*.rc импортировать в Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский