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

Вниз

Правильный импорт данных из Экселя   Найти похожие ветки 

 
Doctordradd   (2010-11-02 18:37) [0]

Подскажите, пожалуйста, как правильно импортировать данные из таблицы Эксель. Экспорт работает отлично, при импорте открывается файл экселя, записывается временно 1 колонка, при закрытии программы записанные данные исчезают.
Записываются только в готовую строку, т.е. в программу введены вручную данные, в эти строки вписываются данные с экселя, в пустые же - нет...
Подскажите, пожалуйста, где ошибка.
Спасибо.

Экспорт правильный:
var ws,xl:variant;
   i,maxrow:integer;
   col,fst:integer;
begin
 fst:=2;
 xl:=createoleobject("Excel.Application");
   try
     maxrow:=0;
     xl.visible:=true;
     XL.WorkBooks.Add;
     ws := XL.ActiveWorkBook.ActiveSheet;
     ws.Range["A1"].NumberFormat:="0";

     ws.Range["A"+inttostr(fst)].Value := "№";
     ws.Range["B"+inttostr(fst)].Value := "Nombres";
     col:=1;
begin
        inc(col);
        ws.Range[Chr(Ord("A")+col)+inttostr(fst)].Value := " ";
     end;
begin
        inc(col);
        ws.Range[Chr(Ord("A")+col)+inttostr(fst)].Value := " ";
     end;
begin
        inc(col);
        ws.Range[Chr(Ord("A")+col)+inttostr(fst)].Value := " ";
     end;
begin
        inc(col);
        ws.Range[Chr(Ord("A")+col)+inttostr(fst)].Value := " ";
     end;
begin
        inc(col);
        ws.Range[Chr(Ord("A")+col)+inttostr(fst)].Value := " ";
     end;

     for i:=fst+1 to Visitas.Items.Count+fst do begin
        col:=1;
        ws.Range["a"+inttostr(i)].Value := i-2;//# работы
        ws.Range["b"+inttostr(i)].Value := Visitas.Items[i-fst-1].Caption;
begin
           inc(col);
           ws.Range[Chr(Ord("A")+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[0];
        end;
begin
           inc(col);
           ws.Range[Chr(Ord("A")+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[1];
        end;
begin
           inc(col);
           ws.Range[Chr(Ord("A")+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[2];
        end;
begin
           inc(col);
           ws.Range[Chr(Ord("A")+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[3];
        end;
        begin
           inc(col);
           ws.Range[Chr(Ord("A")+col)+inttostr(i)].Value:=Visitas.Items[i-fst-1].SubItems[4];
        end;
        maxrow:=i;
     end;

Импорт с ошибкой:
var ws,xl:variant;
   i,maxrow:integer;
   col,fst:integer;
begin
 fst:=7;
 xl:=createoleobject("Excel.Application");
   try
     maxrow:=0;
     xl.visible:=true;
     XL.WorkBooks.open("PRESENTES");
     ws := XL.ActiveWorkBook.ActiveSheet;
     ws.Range["A1"].NumberFormat:="0";

      for i:=fst+1 to Visitas.Items.Count+fst do begin
        col:=1;
        Visitas.Items[i-fst-1].SubItems[0]:= ws.Range["A"+inttostr(fst)].Value;
        Visitas.Items[i-fst-1].SubItems[1] := ws.Range["B"+inttostr(fst)].Value;
        maxrow:=i;


 
Leonid Troyanovsky ©   (2010-11-02 18:47) [1]


> Doctordradd   (02.11.10 18:37)  

> из таблицы Эксель. Экспорт работает отлично, при импорте
> открывается файл экселя, записывается временно 1 колонка,
>  при закрытии программы записанные данные исчезают.

Вообще-то оно хорошее правильнописание,
но только почему-то хромает ..

--
Regards, LVT.


 
Doctordradd   (2010-11-02 18:55) [2]

Ммм...по-русски у меня всегда была 5, но уже 8 лет не говорю на родном языке...
В любом случае более подробное обьяснение:
Я новичок в Дельфи, создаю программу, базу данных. Данные работников, скажем записываются в несколько колонок в основном интерфейсе программы тип таблицы. Есть экспорт данных в эксель, пытаюсь создать импорт. Данные в таблицу программы записываются с формы, в которой каждое поле - это колонка в таблице.
При импорте в данный момент открывается нужный файл, имя приходится прописывать в Дельфи, не получается открывать выбор файла, после открытия в таблицу программы импортируются данные указанные в коде Дельфи, но при закрытии созданной программы данные из таблицы исчезают.


 
Anatoly Podgoretsky ©   (2010-11-02 19:11) [3]

> Doctordradd  (02.11.2010 18:37:00)  [0]

Не видать команды записи в файл.


 
Leonid Troyanovsky ©   (2010-11-02 19:13) [4]


> Doctordradd   (02.11.10 18:55) [2]

> Ммм...по-русски у меня всегда была 5, но уже 8 лет не говорю
> на родном языке...

Милн Ален Александр. Пер. Б.Заходер.
Посоветовать даже не знаю что, если с русским плохо.
May be VBA help.

Да, и чего сразу Excel, а не, скажем, Access.

--
Regards, LVT.


 
Doctordradd   (2010-11-03 21:21) [5]

Команду записи с файла не смог вставить, выдает ошибку, с формы вручную данные записываются так:

main.ini.WriteString(Edit1.Text,"n1",Edit2.text);
где
  Edit1.text:=SECT;
  oldname:=Edit1.Text;


также при импорте в таблицу основную выдаются данные только 1-й строчки из экселя и только в строчки, уже прописанные вручную.
Т.е. сначала приходится вводить любые данные в каждую строку, в эту строку вписывается 7-я строка из экселя, она же вписывается во все строки уже введенные вручную в базу.
Подскажите, пожалуйста, как дать команду записи в файл этих данных с эклселя и исправить запись с 7 строки на с 7 и далее, также вписывать данные не только в уже введенные строки в базе, а в любые пустые.
Спасибо


 
Anatoly Podgoretsky ©   (2010-11-04 11:34) [6]

Так и пишет "выдаю ошибку"


 
Doctordradd   (2010-11-04 16:01) [7]

Если знаете - подскажите, если не знаете, чего глумиться-то, каждый человек в чем-то хорошо, а в чем-то плохо разбирается...
написано "Мастера Delphi" а не балабольства на форуме, для того, полагаю люди и обращаются...
Ошибка конечно же выдается в виде подчеркнутой строчки и не компилится.


 
Anatoly Podgoretsky ©   (2010-11-04 16:04) [8]

Все понял у тебя или секретная или обидная ошибка.


 
Doctordradd   (2010-11-04 16:51) [9]

Я не знаю как записать эти данные в файл, сделал попытку такого вида:
main.ini.WriteString(" ","n1",ws.Range["B"+inttostr(fst)].Value);


 
Anatoly Podgoretsky ©   (2010-11-04 18:26) [10]

> Doctordradd  (04.11.2010 16:51:09)  [9]

Value это variant, и строки если они есть, то они Юникодовые.


 
Doctordradd   (2010-11-04 18:53) [11]

Ммм... Ваша подсказака для более знающего delphi человека...
Если сам принцип записи в файл верен, подскажите, пожалуйста, более развернуто, если конечно не трудно, что не так в коде записи...
Спасибо.

Заменяя value на text - ошибку не выдает, но и данные не пишутся в файл, delphi дает подсказку что можно писать после точки, только лишь templates.


 
sniknik ©   (2010-11-04 20:46) [12]

> Если сам принцип записи в файл верен
WriteString написана совершенно верно. но принципа в ней нет...


 
Doctordradd   (2010-11-04 23:01) [13]


> WriteString написана совершенно верно

Подскажите, пожалуйста, что должно быть в скобках для правильной записи данных


 
sniknik ©   (2010-11-05 01:55) [14]

в скобках пишется то, что нужно, для метода того класса/типа объекта который используется. их дельфи/хелп вообще то 16 штук выдает... скажи который (номер от 1 до 16) и я посмотрю за тебя какого типа переменные в нем должны быть написаны.

хотя, и в них принципа нет.


 
Германн ©   (2010-11-05 02:51) [15]


> их дельфи/хелп вообще то 16 штук выдает

У меня всего 8. Но среди них нет той, о которой говорит (скорее всего) автор.


> Doctordradd

Сохранение содержимого документа Excel в ini-файл вам дьявол подсказал, не иначе.


 
Doctordradd   (2010-11-05 15:06) [16]

В книжке написано, что более 400 классов...
В Tlist импортированные данные отображаются, далее нет.
Файл базы .pdb...
Программу не сам пишу, изменяю телефонный справочник...


 
Doctordradd   (2010-11-05 19:47) [17]

Сергей, подскажите, пожалуйста, как правильно записать импорт, я уже путаться больше начинаю...
Спасибо.


 
sniknik ©   (2010-11-05 23:31) [18]

> как правильно записать импорт
правильно писать экспорт... т.к. из экселя в файл, импорт наоборот.

и для кого правильно? вот например для меня, используя jet, в один запрос -  
SELECT * INTO Export#txt IN "D:\" "Text;" FROM [Sheet1$]
это экспорт
SELECT * INTO [Sheet4$] FROM Import#txt IN "D:\" "Text;"
и импорт

но для тебя это вряд ли будет правильно, нужный тебе формат ты не описал, поэтому думаю csv тебе не подойдет.

> я уже путаться больше начинаю...
только начинаешь? а до этого типа все кристально ясно было, поэтому не мог определиться, что используешь?


 
Doctordradd   (2010-11-07 00:03) [19]


> только начинаешь? а до этого типа все кристально ясно было,
>  поэтому не мог определиться, что используешь?

Извините, я не программист вовсе, редактирую, подгоняю исходник телефонного справочника под базу данных предприятия...

В самом начале топика дан экспорт, который работает на 5+ и импорт, сделанный вобщем-то так же, но наоборот, здесь-то и загвоздка...
пишется все через main.ini...
Формат разный, если не ошибаюсь, это Text, Date, ItemIndex...


 
sniknik ©   (2010-11-07 00:41) [20]

> Извините, я не программист вовсе
да не за что. найми программиста.

> В самом начале топика дан экспорт, который работает на 5+ и импорт, сделанный вобщем-то так же, но наоборот
ну так, теперь ты все прояснил! сразу стало понятно, что работать не будет... т.к. в данном в топике коде нет чтения из файла, т.е. "наоборот" это запись, именно она и не работает. это карма.


 
Doctordradd   (2010-11-07 03:44) [21]


> найми программиста

Где ж б его нанять здесь...


> в данном в топике коде нет чтения из файла, т.е. "наоборот"
> это запись, именно она и не работает


Подскажите, пожалуйста, все равно не понял по словам где именно ошибка кроется...
Наоборот получается от экспорта вроде бы, но что-то упустил все равно...


 
Германн ©   (2010-11-07 04:00) [22]


>  Doctordradd   (07.11.10 03:44) [21]
>
>
> > найми программиста
>
> Где ж б его нанять здесь...
>

Это будет очень дорого стоить. (Отвечаю и на твоё письмо).
Но есть и такой ресурс http://forum.sources.ru/index.php?showforum=149


 
Doctordradd   (2010-11-07 08:46) [23]

Единственное сообщение что вожу при входе на этот форум, это что мой адрес забанен...раньше точно на этот форум не заходил:

Обнаружена ошибка. Если Вам неизвестны причины ошибки, попробуйте обратиться к файлам помощи.

Обнаружена ошибка:

Вы ЗАБАНЕНЫ на этом форуме


 
sniknik ©   (2010-11-07 10:38) [24]

> Вы ЗАБАНЕНЫ на этом форуме
напиши это модератору - forum@sources.ru вместе с тем, что не заходил... может они всю под сеть закрыли из-за частого "кидалова" из нее.


 
Doctordradd   (2010-11-08 22:27) [25]

Так и не получается, значит, решить вопрос этого топика с импортом из Экселя?


 
sniknik ©   (2010-11-08 23:27) [26]

почему же не получается? очень даже получается, в [18] например вопрос полностью решен, и экспорт и импорт... другое дело тебя это чем то не устраивает. а нас не устраивает твоя постановка вопроса... а собственно нет никакой постановки, есть желание высказанное получить код, не утруждаясь даже нормальное ТЗ. впрочем, грамотное ТЗ тоже не поможет, т.к. принцип сайта - "делаешь ты сам. мы можем подсказать, в трудных местах". но от тебя нет попыток  что-то делать... т.что и подсказывать не к чему.


 
Doctordradd   (2010-11-09 06:23) [27]

Я не бестолочь вовсе и даже не начинающий программист...
здесь вот вы пишете:

> и для кого правильно? вот например для меня, используя jet,
>  в один запрос -  
> SELECT * INTO Export#txt IN "D:\" "Text;" FROM [Sheet1$]
> это экспорт
> SELECT * INTO [Sheet4$] FROM Import#txt IN "D:\" "Text;"
> и импорт
>
> но для тебя это вряд ли будет правильно, нужный тебе формат
> ты не описал, поэтому думаю csv тебе не подойдет.

вижу что идет текст, как в колонки, в строчки его писать???
обьясните понятнее где ошибка и как исправить, если можете и хотите помочь...учиться мне поздно уже, неделю как терпеливо надеюсь понять как этот импорт сделать...
понимаю что Вы специалист в этом и может интересно глумиться как кто-то не может сделать что вам 5 мин., когда-нибудь Вам тоже понадобится в другой области что-то исправить или понять, дай Бог помогут...

Код или кусок кода на практике дает понимание как и что работает, теория это в 10 раз больше времени всегда и не всегда толк...


 
sniknik ©   (2010-11-09 08:20) [28]

> вижу что идет текст, как в колонки, в строчки его писать???
а вам как надо? эксель - таблица (если брать 1 лист), сохранение пишет аналогично просто в другой формат (стандартный кстати).

> обьясните понятнее где ошибка и как исправить
понятнее... ошибки НЕТ. здесь нет. так как то что вы показываете не содержит в одном случае чтения из файла(аналогию по "делаю также но наоборот" не провести), в другом записи (на что жалоба). есть название метода неизвестно какого объекта. причем название абсолютно верное (иначе бы справка не нашла соответствий), с параметрами сложнее, они разные у каждого (не, ну на самом деле у кого то могут совпадать, не суть). впрочем несоответствие типов дало бы ошибку... стойте, так у нас и есть ошибка! или что по вашему значит "не работает"? просто скрываемая. потом, даже если написать один метод с правильными значениями, это еще не значит что мы записали в файл... есть куча вариантов (а объект нам не известен, еще помните?) когда сохранение делается в буфер, и после, другой командой сбрасывается на диск, в файл... т.е. даже абсолютно верный с верными (исправленными) параметрами без ошибок 1 метод может ничего не дать, и скорее всего не даст.

> глумиться как кто-то
мы с вами говорим на разный языках... то что вы воспринимаете как глумление, на самом деле и есть помощь... если бы вы реагировали на нее адекватно, давно бы все решили. но для этого нужно думать как программист/знать необходимый минимум.

> учиться мне поздно уже
поэтому вам и лучше нанять программиста.

> когда-нибудь Вам тоже понадобится в другой области что-то исправить или понять, дай Бог помогут...
мне совсем недавно требовалась такая, стиральную машинку установить... область не моя. вызвал, помогли. 3 тысячи все счастье. и Бог тут не причем. он этим не занимается.

> Код или кусок кода на практике дает понимание как и что работает
я дал вам код. самый простой вариант по моему. но без знания jet-а, ADO, подключений (исамов), оно вам сильно помогло?

> теория это в 10 раз больше времени всегда и не всегда толк...
сказка о голодном рыбаке, которого вместо обеда предпочли научить ловить рыбу. кто там что сказал по этому поводу?
хотя у вас цель другая... не дать заработать "рыбаку" на обед, убедив других таких же "наловить вам рыбы за бесплатно".


 
Doctordradd   (2010-11-09 08:46) [29]

я б заплатил вобщем-то раз помочь никак...

3 тысячи, да, рыбка золотая, я вот как раз машинки сам себе подключал...

Вот может быть это поможет помочь? это добавление итемсов в main файле...это и есть запись? или снова не то?
procedure LoadGroupVisitas(Const Groupname:string);
var i,cur:integer;
    sec:tstringlist;
begin
BaseVisitas.Visitas.OnChange:=nil;
sec:=tstringlist.Create;
with BaseVisitas do begin
  Visitas.Clear;
  try
    ini.ReadSections(sec);
    status.panels[1].text:=" Total Visitas : "+inttostr(sec.Count);
    if groups.ItemIndex=0 then begin
       for i:=0 to sec.Count-1 do begin
         Visitas.Items.Add.Caption:=Sec[i];
         Visitas.Items[i].SubItems.Add(Ini.ReadString(Sec[i],"n1",""));
         Visitas.Items[i].SubItems.Add(Ini.ReadString(Sec[i],"n2",""));
         Visitas.Items[i].SubItems.Add(Ini.ReadString(Sec[i],"n3",""));
         Visitas.Items[i].SubItems.Add(Ini.ReadString(Sec[i],"n4",""));
         Visitas.Items[i].SubItems.Add(Ini.ReadString(Sec[i],"n5",""));
         Visitas.Items[i].SubItems.Add(Ini.ReadString(Sec[i],"n6",""));
       end;
     end;
     if groups.itemindex>0 then begin
       for i:=0 to  sec.Count-1 do begin
         if ini.readstring(sec[i],"n7","")=GroupName then begin
             cur:=Visitas.Items.Add.Index;
             Visitas.items[cur].Caption:=sec[i];
             Visitas.items[cur].SubItems.Add(ini.readstring(sec[i],"n1",""));
             Visitas.items[cur].SubItems.Add(ini.readstring(sec[i],"n2",""));
             Visitas.items[cur].SubItems.Add(ini.readstring(sec[i],"n3",""));
             Visitas.items[cur].SubItems.Add(ini.readstring(sec[i],"n4",""));
             Visitas.items[cur].SubItems.Add(ini.readstring(sec[i],"n5",""));
             Visitas.items[cur].SubItems.Add(ini.readstring(sec[i],"n6",""));
         end;
       end;
     end;


 
sniknik ©   (2010-11-09 09:40) [30]

> ini.ReadSections(sec)
значит все таки ini...
Германн ©   (05.11.10 02:51) [15]
> Сохранение содержимого документа Excel в ini-файл вам дьявол подсказал, не иначе.

но... ваше дело конечно, как и будущие проблемы.

> Visitas.Items[i].SubItems.Add(Ini.ReadString(Sec[i],"n1",""));
ну и что же вы врете, что "аналогично только запись"? здесь секция вполне определена. а на "записи" нет.


 
sniknik ©   (2010-11-09 09:54) [31]

> я вот как раз машинки сам себе подключал...
думаешь я сам не мог? но пришлось бы ехать в магазин подбирать/наращивать шланг, делать врезку (откуда то брать сварку? с умением не проблема, у меня даже есть корочки сварщика, устаревшие правда, получил на повышении квалификации (владение смежными дает/давало бонус на предприятии), еще до института/армии...), и т.д. провозился бы не одну неделю, а так все решилось за пол часа, + саму машинку затащили на 5 этаж без меня... ++ если бы мне пришлось (а мне бы пришлось) из-за этого брать отгул, то потерял бы я больше чем эти 3 тысячи (кстати вы не теряете занимаясь не своим делом вместо своей работы?).

а вообще, честно, вижу такое наплевательское "да че там делать то?" только от от тех, кто в процессе не разбирается, и сам не умеет, или так сказать "умеет издалека". и это неважно к чему относится, в любой области можно применить.


 
Andy BitOff ©   (2010-11-09 10:05) [32]


> Doctordradd   (09.11.10 08:46) [29]
> это и есть запись?

Какая же это запись? Написано же ReadString, т.е. берем гугл и получаем "Читайте String" (с)translate.google.com
Читайте! А не пишите.


 
Dennis I. Komarov ©   (2010-11-09 13:20) [33]


> а вообще, честно, вижу такое наплевательское "да че там
> делать то?" только от от тех, кто в процессе не разбирается,
>  и сам не умеет, или так сказать "умеет издалека". и это
> неважно к чему относится, в любой области можно применить.

Вот так привезут человека с аппендицитом, а там Виктор Михайлович Полесов - да чего тут делать, зыж самая простая операция - раз и все...


 
Dennis I. Komarov ©   (2010-11-09 13:33) [34]


> я б заплатил вобщем-то раз помочь никак...

Да, если все-таки самодеятельность надоест, составляйте Т.З. и...


 
Doctordradd   (2010-11-09 15:55) [35]


> Сохранение содержимого документа Excel в ini-файл вам дьявол
> подсказал, не иначе.

В куда ж его еще можно сохранить?


> здесь секция вполне определена. а на "записи" нет.

Попробовал Sec[0] в коде импорта, не выходит...


> а вообще, честно, вижу такое наплевательское "да че там
> делать то?" только от от тех, кто в процессе не разбирается,
>  и сам не умеет, или так сказать "умеет издалека"

То что не умею издалека, может и моя вина, что другим наукам учился, но Вы не думайте, что я сижу вот и жду, поплевывая на экран...согласен, не знаю абсолютно и наугад уже изменяю этот код, но все же пытаюсь...


> Да, если все-таки самодеятельность надоест, составляйте
> Т.З. и...

Обидно сдаваться теперь, 2 недели пытаюсь решить задачу...


 
Dennis I. Komarov ©   (2010-11-09 16:20) [36]

Хорошего из этого ничего не получится. Если для баловства, то пожалуйста, развлекайтесь сколько угодно. А если для дела, то извините, любой хороший продукт стоит хороших денег. А чтобы продукт был хороший... и т.д.


 
sniknik ©   (2010-11-09 17:53) [37]

> Попробовал Sec[0] в коде импорта, не выходит...
так и пишет? не выхожу мол... вообще ошибки это первое на что должен учится обращать внимание программист, т.к. в них часто написана причина...

у тебя там еще один глюк, раз уж ini  файл, то там вроде как нет перекрытых методов с вариантным параметром, а автоприведение... ну может не срабатывает. не скажу без ошибки от действия.

> Обидно сдаваться теперь, 2 недели пытаюсь решить задачу...
через 2 месяца будет еще более обидно, при том же состоянии дел. учится на программиста вы же не хотите...


 
Doctordradd   (2010-11-09 18:27) [38]

Ошибок выдало несколько, несовместимы типы, не обьявлена переменная...

Т.З. простое было б:
Почистить только необходимо лишнее в коде базы данных, настроить импорт Экселя, настроить копирование строк(при попытке копировать они как бы вырезаются).
Сколько б могла стоить работа?


 
Anatoly Podgoretsky ©   (2010-11-09 18:58) [39]

> Doctordradd  (09.11.2010 18:27:38)  [38]

Ты еще и деньги хочешь получать :-)


 
sniknik ©   (2010-11-09 21:33) [40]

> Т.З. простое было б:
простое тз. это то где все досконально расписано, так чтобы не было неоднозначных толкований (которые обычно после пытаются интерпретировать в пользу заказчика).
а твоя "писулька" не иначе как "вызов Шерлок Холмсу", вот что такое "лишнее в коде базы данных"??? в базах данных вообще то нет кода, и т.д.

вообще совет, не надо в тз. пытаться расписывать что делать, пиши что хочешь получить... ты же вот таксисту не говоришь - "крутите руль влево на 30 градусов, после поворота жмите педаль тормоза, после светофора держите машину прямо...", ты просто говоришь куда тебе надо.

> Ты еще и деньги хочешь получать :-)
не, он приценивается, чтобы не переплатить... (хотя место выбрал не удачное, ссылки где этим занимаются проигнорировал).



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

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

Наверх




Память: 0.59 MB
Время: 0.004 c
2-1288961946
stenfit
2010-11-05 15:59
2011.01.30
move


11-1229310616
L`Autour
2008-12-15 06:10
2011.01.30
Вопрос по перехвату LVN_GETDISPINFOW


2-1289186027
Gu
2010-11-08 06:13
2011.01.30
Определить консольное приложение


15-1286972348
vv_fran
2010-10-13 16:19
2011.01.30
Как перекодировать русский текст формы в Win1251 ?


11-1228663529
exero
2008-12-07 18:25
2011.01.30
Потоки и двухядерные процы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский