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

Вниз

Освобождение ресурса в finally   Найти похожие ветки 

 
Игорь Шевченко ©   (2008-04-30 11:27) [400]

Восхищенный   (30.04.08 11:21) [399]

Мы немножко в сторону отошли. Мне все-таки хотелось бы увидеть пример серьезной системы написанной с использованием ООП.

Ну кроме Delphi, разумеется :)


 
Palladin ©   (2008-04-30 11:32) [401]


> Игорь Шевченко ©   (30.04.08 10:20) [393]

Извиняюсь. Позволь мне конкретизировать, то что я имею в виду, под серьезным приложением. Я имею ввиду пользовательское приложение прикладного уровня. С тенденцией развития.

По поводу Windows. С точки зрения программиста из чего состоит ядро Windows? из набора трех dll, конечно там и не пахнет ООП, а зачем оно там? так же Windows состоит из мяса написанного самим же MS, вот тут то ООП и используется (али я не прав?). Windows это не какое то конкретное приложение - это целый набор из ядра и приложений-саттелитов.

Linux - ну тут мне сказать нечего...

Oracle - не верю (С) Станиславский, та же ситуация с Windows, в ядре, конечно и ни капли ООП, но, Игорь, там в инструменталке, Orcale Forms, основной используемый инструмент Jawa :) о чем ты...

В общем категорию приложений где ООП более чем уместно я определил.

Дальше к ANB:

> Изначально дискуссия шла : каскадный трай вс один трай с
> обнилением.
> Приведя пример разделения кода по методам ты, не собираясь
> этого делать, фактически грохнул каскад. И перешел в мой
> лагерь :) Но по прежнему пытаешься доказать, что каскад
> лучше.

Ага, только гроханье каскада - это побочный приятный эффект. Если ты внимательно прочитал [86] то наверное заметил бы, мою фразу о том, что если у нас столько много объектов, то следует задуматся, а нельзя ли сделать попроще. И вот если ты вдруг все еще не понял, то [192] это ответ на твой пример, и ответ на вопрос "а нельзя ли сделать попроще?". Всегда есть какой то процент, когда действительно нельзя, просто пример ты привел, в котором очень даже можно.


> Да она еще сложнее стала для понимания и сопровождения.

хм... ну что я могу сказать, это твое "ИМХО" вот только ты забыл это добавить. переубеждать тебя не буду. Форматы меняют, да еще так быстро, что надо было сделать вчера. Просто ты с этим не сталкивался.


> Классический пример, когда ООП только затрудняет понимание
> и сопровождение.

Опять "классический"... а "ИМХО" опять ты случайно не забыл добавить?


> ANB   (30.04.08 11:01) [396]
> ООП по делу и без дела

где? где у меня это утверждение? где я всех склоняю к ООП? ты прочитал, что я Игорю ответил? неа... ну и ладно...


 
Palladin ©   (2008-04-30 11:35) [402]


> Игорь Шевченко ©   (30.04.08 11:27) [400]

Все еще хочешь? :) Даже с учетом выделения конкретной категории приложений в [401] ? :)


 
Восхищенный   (2008-04-30 11:38) [403]

> Игорь Шевченко ©   (30.04.08 11:27) [400]

Это вопрос не ко мне (в силу [395]).

А вообще, системы, которые ты считаешь серьезными ("Windows, Unix, Linux, Oracle"), во-первых, зарождались еще до бурного развития ООП (и писались, соответственно, на ПП); во-вторых, подобного рода системы вряд ли вообще на ООП пишутся (в силу повышенных требований по памяти и скорости).

ООП - это, видимо, в большей степени инструмент для прикладной разработки. Ну, и для разработки инструментов для прикладной разработки (всяческие IDE и т.п.).


 
Игорь Шевченко ©   (2008-04-30 11:53) [404]

Восхищенный   (30.04.08 11:38) [403]

Я могу объяснить, почему я их такими считаю - потому чтоООП изначально декларировалось как панацея от сложности программ. Так вот, программы, которые я привел, они достаточно сложные, как по объему кода, так и по функциональности.


> во-вторых, подобного рода системы вряд ли вообще на ООП
> пишутся (в силу повышенных требований по памяти и скорости).
>


Каким боком ООП относится к памяти и скорости ?

Проводник виндовый написан без всякого ООП - какие тут нафиг повышенные требования ?

Palladin ©   (30.04.08 11:32) [401]


> Позволь мне конкретизировать, то что я имею в виду, под
> серьезным приложением. Я имею ввиду пользовательское приложение
> прикладного уровня. С тенденцией развития.


Что, ООП - оно только для прикладных задач ? :)
Я так считал что это парадигма программирования вообще...


> По поводу Windows. С точки зрения программиста из чего состоит
> ядро Windows? из набора трех dll


Ну зачем ерунду-то говорить ? :) причем тут точка зрения программиста ?
Как ты понимаешь, и DLL гораздо больше, и набор трех DLL не Windows вовсе.


> Oracle - не верю (С) Станиславский


А эт ты зря не веришь. Никакого там ООП в ядре нет - чистый C


 
ANB   (2008-04-30 11:55) [405]


> Форматы меняют, да еще так быстро, что надо было сделать
> вчера. Просто ты с этим не сталкивался.

Сталкивался. При этом нужно чтобы некоторое время поддерживались оба. "Нерезко" != "нечасто"
При этом частенько изменение формата приводить к полному изменению алгоритма обработки.


> Ага, только гроханье каскада - это побочный приятный эффект.
>  Если ты внимательно прочитал [86] то наверное заметил бы,
>  мою фразу о том, что если у нас столько много объектов,
>  то следует задуматся, а нельзя ли сделать попроще. И вот
> если ты вдруг все еще не понял, то [192] это ответ на твой
> пример, и ответ на вопрос "а нельзя ли сделать попроще?".
>  Всегда есть какой то процент, когда действительно нельзя,
>  просто пример ты привел, в котором очень даже можно.

То что ты сделал, это не "попроще".
Попроще (и быстрее) делается так :
выкидывается нафиг весь код, в процедуре создается один объект, с помощью которого файл закидывается клобом в хранимку и уже на сервере парсится и обрабатывается.
Затем из аут параметров сохраняем логи.
А прикрутить ООП - это в данном случае еще больше все усложнить.
С XML же в случае больших объемов вообще придется ВСЕ переделывать и это нетривиально. Во всяком случае, приведенный пример разделения никак этому не поможет.

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


 
ANB   (2008-04-30 11:56) [406]


> Никакого там ООП в ядре нет - чистый C

А то, что в оракле написали с помощью явы - настолько неудобно, что этим никто не хочет пользоваться.


 
Игорь Шевченко ©   (2008-04-30 12:00) [407]

ANB   (30.04.08 11:56) [406]


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


Эт ты неправду говоришь


 
Palladin ©   (2008-04-30 12:00) [408]


> Игорь Шевченко ©   (30.04.08 11:53) [404]



> Ну зачем ерунду-то говорить ? :) причем тут точка зрения
> программиста ?
> Как ты понимаешь, и DLL гораздо больше, и набор трех DLL
> не Windows вовсе.

ну тут ты прав конечно, это я слишком уж утрировал...


> Что, ООП - оно только для прикладных задач ? :)
> Я так считал что это парадигма программирования вообще..

И представляешь! :) Я тоже думаю что это парадигма! Но ты демагогией занимаешься. Я утверждаю "серьезному прикладному приложению без ООА/ООП не выжить", а ты мне вопросом "Что, ООП - оно только для прикладных задач ?"... ты либо не понял либо меня хочешь запутать...


> А эт ты зря не веришь. Никакого там ООП в ядре нет - чистый
> C

Ага, а дальше-то, дочитать фразу после Станиславского таки не судьба? :)


 
Palladin ©   (2008-04-30 12:03) [409]


> ANB   (30.04.08 11:55) [405]

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


> и начало использования рекомендаций Саши Просторова, против
> которых ты и выступал.

Я не выступал против вообще всех его рекомендаций, я выступал против конкретного массового обниления.


 
Восхищенный   (2008-04-30 12:04) [410]

> Игорь Шевченко ©   (30.04.08 11:53) [404]

> Каким боком ООП относится к памяти и скорости?

Таким, что реализация парадигмы ООП связана с накладными расходами (VMT и пр.) - а они приводят к дополнительным затратам памяти и снижению скорости.


 
Anatoly Podgoretsky ©   (2008-04-30 12:16) [411]

> Palladin  (30.04.2008 09:31:31)  [391]

Какой ты классик, ты Монстр


 
Anatoly Podgoretsky ©   (2008-04-30 12:17) [412]

> ANB  (30.04.2008 10:19:32)  [392]

> на чем написана винда

Думаю там страшная солянка, усугубленная долгой историей и гигантизмом.


 
Игорь Шевченко ©   (2008-04-30 12:18) [413]

Palladin ©   (30.04.08 12:00) [408]


> И представляешь! :) Я тоже думаю что это парадигма! Но ты
> демагогией занимаешься. Я утверждаю "серьезному прикладному
> приложению без ООА/ООП не выжить", а ты мне вопросом "Что,
>  ООП - оно только для прикладных задач ?"... ты либо не
> понял либо меня хочешь запутать...


Я действительно не понял. Вот скажем, компилятор - оно ведь достаточно серьезное приложение ? Для реализации компилятора можно применить и тот и другой подход, более того, они, эти подходы, достаточно успешно применяются, не скажу, что в равной степени, но я видел и тот и другой подход при реализации.
Вот скажем, система управления базами данных - тоже вроде серьезное приложение. Опять же, может быть реализовано и с помощью одного и с помощью другого подхода. Опять же, есть и такая и такая реализация. Из ООП-реализаций навскидку вспомню Postgress
А вот СУБД Oracle реализована без него.

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


 
Anatoly Podgoretsky ©   (2008-04-30 12:18) [414]

> Восхищенный  (30.04.2008 10:56:35)  [395]

Вопрос надо ставить про пчел, остальное чепуха.


 
ANB   (2008-04-30 12:27) [415]


> я выступал против конкретного массового обниления

И применил его в своем примере :)
От того, что обниление за тебя сделал конструктор, ничего не поменялось.
Ну чего юлить то ? Я попросил пример разделения с сохранением каскада.
Ты дал якобы его.
При этом код не упростил.


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

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


 
Anatoly Podgoretsky ©   (2008-04-30 12:27) [416]

> Palladin  (30.04.2008 11:32:41)  [401]

> Linux - ну тут мне сказать нечего...

За Линукс я могу сказать, если в Виндоус падает штатное или постороннее приложение, это Виндоус виноват - кривой. А в Линуксе - не линукс не виноват, линукс мол это только ядро, а к остальному Линукс отношения не имеет. А примеры как вешается тоже ядро и при том намертво тщательно игнорируются.
Поэтому что либо говорить об Линуксе не имеет смысла.


 
Ega23 ©   (2008-04-30 12:31) [417]

<OFFTOP>
фигасе, сколько постов...
Не надоело?
</OFFTOP>

Теперь по делу: господа модераторы!
А не взять ли эту ветку, почистить ненужный флуд, и выложить её в FAQ? Или чем-то вроде статьи оформить? Полезной информации здесь - более чем...


 
Игорь Шевченко ©   (2008-04-30 12:36) [418]

ANB   (30.04.08 12:27) [415]

Смени народ :)
У моего народа противоположное мнение


 
Palladin ©   (2008-04-30 12:38) [419]


> Игорь Шевченко ©   (30.04.08 12:18) [413]

Ну я не считаю, что компилятор это прикладное приложение, это больше приложение-инструмент.


> Для реализации компилятора можно применить и тот и другой
> подход, более того, они, эти подходы, достаточно успешно
> применяются

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


> Вот скажем, система управления базами данных - тоже вроде
> серьезное приложение.

Да, но я не считаю его приложением, я считаю его комплексом из модулей/приложений. Уровня ядра и прикладного уровня. В некоторых СУБД вообще нет никакого прикладного уровня, есть только ядро. Так что смотря, что рассматривать.


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

И представляешь, я с ними согласен! Полностью! :)
Извиняюсь еще раз за не понятки в определениях. Давай конкретизируем теперь понятие "Серьезное", что я имел ввиду под серьезным приложением.

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

Да и вообще я конечно неоднозначный термин подобрал...


 
Palladin ©   (2008-04-30 12:40) [420]


> Игорь Шевченко ©   (30.04.08 12:36) [418]

ANB ярый противник ООП, он не видит очевидного, спорить безполезно.


 
Игорь Шевченко ©   (2008-04-30 12:44) [421]

Palladin ©   (30.04.08 12:38) [419]


> Да и вообще я конечно неоднозначный термин подобрал...



> проектировщик пятой точкой чувствует


почему - вполне однозначный :)
Я с тобой не спорю вообще, я просто к тому, что и каждый подход сам по себе и их совокупность имеют право на существование при разработке приложений. И что именно применять, зависит в первую очередь от предметной области.


 
{RASkov} ©   (2008-04-30 12:45) [422]

> Теперь по делу: господа модераторы!
> А не взять ли эту ветку, почистить ненужный флуд....

Делать им больше нечего :)
Тут пару-тройку постов можно оставить, а остольное это перекладывание с места на место)
А вообще мне интересны такие "могучие" ветки....
:о)


 
Palladin ©   (2008-04-30 12:52) [423]


> Игорь Шевченко ©   (30.04.08 12:44) [421]


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

вот это точно, так и есть... совершенно согласен...


 
Palladin ©   (2008-04-30 13:00) [424]

Мне не приложения стоило бы назвать серьезными, а предметную область...


 
ANB   (2008-04-30 13:36) [425]


> ANB ярый противник ООП, он не видит очевидного, спорить
> безполезно.

ANB ярый противник бестолкового применения ООП.

АБС - серьезное прикладное приложение ?


 
ANB   (2008-04-30 13:36) [426]

А бухгалтерия (торговля + склад для малого предприятия) ?


 
ANB   (2008-04-30 13:42) [427]


> Смени народ :)
> У моего народа противоположное мнение

Тормозит, жуткий интерфейс. Даже с 1С удобнее работать. Как юзеру.


 
ANB   (2008-04-30 13:43) [428]


> Palladin ©   (30.04.08 12:40) [420]

Вы работали с OEBS ?


 
Anatoly Podgoretsky ©   (2008-04-30 15:33) [429]

> Ega23  (30.04.2008 12:31:57)  [417]

Это не задача модераторов, модератор может только поудалять.
А с вопросами публикации к Максиму, только предварительно составь статью для публикации.


 
Anatoly Podgoretsky ©   (2008-04-30 15:38) [430]

> Anatoly Podgoretsky  (30.04.2008 15:33:09)  [429]

Какой модератор рискнет чистить такую длинную ветку, разве что спьяну


 
Palladin ©   (2008-05-01 00:36) [431]


> ANB ярый противник бестолкового применения ООП

И я ярый противник бестолкового применения ООП. И я ярый противник безсмысленного обращения к ПП, когда есть более чем смысленное решение ООП.


 
ANB   (2008-05-04 10:26) [432]


>  И я ярый противник безсмысленного обращения к ПП, когда
> есть более чем смысленное решение ООП

Такого не бывает практически никогда.

Единственная область, где ООП имеет практически подавляющее преимущество - моделирование и рисование (которое тоже, в принципе, моделирование). Собственно, с него ООП и начиналось.

Во всех остальных задачах ПП и ООП практически либо равны по трудоемкости реализации, либо ПП имеет преимущество. Причем, по скорости, выполнения ПП имеет преимущество почти всегда.


 
Жуков Олег   (2008-05-04 10:50) [433]

Любая прикладная программа - моделирование части реального мира


 
oxffff ©   (2008-05-04 12:09) [434]


> ANB   (04.05.08 10:26) [432]
>
> >  И я ярый противник безсмысленного обращения к ПП, когда
>
> > есть более чем смысленное решение ООП
>
> Такого не бывает практически никогда.
>
> Единственная область, где ООП имеет практически подавляющее
> преимущество - моделирование и рисование (которое тоже,
> в принципе, моделирование). Собственно, с него ООП и начиналось.
>
>
> Во всех остальных задачах ПП и ООП практически либо равны
> по трудоемкости реализации, либо ПП имеет преимущество.
> Причем, по скорости, выполнения ПП имеет преимущество почти
> всегда.


ПП это что полупрограммирование?


 
Anatoly Podgoretsky ©   (2008-05-04 13:31) [435]


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

Только давай уж сравнивать сравнимое, я посмотрю сколько времени у тебя уйдет на реализацию, того, что тебе дается уже в готовом виде, с обработкой исключений, очередей сообщений, форм, аналогов компонент с обработкой событий, ошибок,  и т.д. и т.п. Или ты будешь делать все в WinAPI или работать в консоли? Не забудем и про базы данных и графику.
Вот тогда и поговорим.

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


 
Palladin ©   (2008-05-04 14:01) [436]


> ANB   (04.05.08 10:26) [432]
> Единственная область, где ООП имеет практически подавляющее
> преимущество - моделирование

Моделирование чего?


 
ANB   (2008-05-04 14:50) [437]


> Только давай уж сравнивать сравнимое, я посмотрю сколько
> времени у тебя уйдет на реализацию, того, что тебе дается
> уже в готовом виде, с обработкой исключений, очередей сообщений,
>  форм, аналогов компонент с обработкой событий, ошибок,
>  и т.д. и т.п. Или ты будешь делать все в WinAPI или работать
> в консоли? Не забудем и про базы данных и графику.
> Вот тогда и поговорим.

Использование готовых классов - это не ООП, а фактически процедурное программирование.
ЗЫ. Чего бы их не пользовать, если они уже написаны.


 
ANB   (2008-05-04 15:00) [438]

Есть предложение.
Решаем задачу тем способом, который больше нравится, затем сравниваем время, потраченное на решение и объем кода.
Рискнем доверять друг другу, т.е. поверим времени на слово. (в конце концов не корову разыгрываем).

И так, имеем XML с таким содержимым (для простоты мона считать, что он находится где удобнее - в строке-константе, в таблице, в файле, т.е. с вводом выводом не заморачиваемся).

<?xml version="1.0" encoding="windows-1251" ?>
 <requests>
   <request request_type="101" sum="15.45"/>
   <request request_type="102" sum="15.45"/>
   <request request_type="104" sum="16.45"/>
   <request request_type="101" sum="11.45"/>
   <request request_type="101" sum="15.45"/>
   <request request_type="101" sum="15.45"/>
   <request request_type="101" sum="15.45"/>
   <request request_type="102" sum="15.45"/>
   <request request_type="101" sum="15.45"/>
   <request request_type="101" sum="15.45"/>
   <request request_type="103" sum="15.45"/>
   <request request_type="101" sum="14.45"/>
   <request request_type="105" sum="15.45"/>
   <request request_type="101" sum="15.45"/>
   <request request_type="101" sum="11.45"/>
   <request request_type="106" sum="15.45"/>
   <request request_type="101" sum="12.45"/>
   <request request_type="101" sum="15.45"/>
   <request request_type="101" sum="15.45"/>
   <request request_type="107" sum="15.45"/>
   <request request_type="101" sum="15.45"/>
   <request request_type="102" sum="18.45"/>
   <request request_type="103" sum="15.45"/>
   <request request_type="101" sum="15.45"/>
 </requests>

Считаем, что более 5 тысяч элементов не будет.
Нужно - быстренько посчитать, сколько элементов какого типа и на какую сумму содержится в этом XML. Уточняю : группировка по request_type.

Приступаем ?


 
Palladin ©   (2008-05-04 15:04) [439]

ок... приступил...


 
ANB   (2008-05-04 15:13) [440]

Мой ответ :

with X as
(
select
"<?xml version="1.0" encoding="windows-1251" ?>
 <requests>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="102" request_sum="15.45"/>
   <request request_type="104" request_sum="16.45"/>
   <request request_type="101" request_sum="11.45"/>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="102" request_sum="15.45"/>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="103" request_sum="15.45"/>
   <request request_type="101" request_sum="14.45"/>
   <request request_type="105" request_sum="15.45"/>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="101" request_sum="11.45"/>
   <request request_type="106" request_sum="15.45"/>
   <request request_type="101" request_sum="12.45"/>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="107" request_sum="15.45"/>
   <request request_type="101" request_sum="15.45"/>
   <request request_type="102" request_sum="18.45"/>
   <request request_type="103" request_sum="15.45"/>
   <request request_type="101" request_sum="15.45"/>
 </requests>
"
XMLValue
from dual
)
select
request_type
,count(*) request_count
,sum(request_sum) request_count
from
(
select
 extractvalue (value (XMLValue), "/request@request_type") request_type
,to_number(extractvalue (value (XMLValue), "/request@request_sum"),"999999999999.9999") request_sum
from
table
(
  xmlsequence
  (
   xmltype((
   select
    XMLValue
   from
    X
    )).extract ("/requests/request")
  )
) XMLValue
)
group by
 request_type
-- Начал 15:02
-- Закончил 15:12


Зазвиняюсь за задержку - начальник отвлек. Время честное.



Страницы: 1 2 3 4 5 6 7 8 9 
10 11 12 13 14 15 16 17 вся ветка

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

Наверх





Память: 1.61 MB
Время: 0.21 c
15-1208846371
shlst
2008-04-22 10:39
2008.06.08
А может пора работу менять?


2-1210824339
brother
2008-05-15 08:05
2008.06.08
сколько строк в TstringList


2-1210840591
MsGuns
2008-05-15 12:36
2008.06.08
Проблема с Transparent для TImage


2-1210948367
assassin8899
2008-05-16 18:32
2008.06.08
lookup


15-1209015532
oxffff
2008-04-24 09:38
2008.06.08
УРА!!!!!!!!!!!!!!!!!!! Delphi RoadMap





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