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

Вниз

Подскажите СУБД   Найти похожие ветки 

 
Медвежонок Пятачок ©   (2009-03-14 02:28) [80]

При чем здесь это...

<Цитата>


ну проверь например наличие триггера.
запрос напиши.


 
turbouser ©   (2009-03-14 02:29) [81]


> Медвежонок Пятачок ©   (14.03.09 02:26) [77]

Что было в поставке - то и обновляется...

> Медвежонок Пятачок ©   (14.03.09 02:26) [77]
>
> Ну почему же... Поверьте, с ораклами и прочими мсскл-ми
> горааааздо сложней в подобном случае будет.
>
> У меня как-то как раз наоборот.

Да? Не верю ©


 
Медвежонок Пятачок ©   (2009-03-14 02:30) [82]

Единственный аргумент - апелляция к сомнительному личному опыту.

Расскажи про свой несомнительный опыт.
Я так и не услышал о количесстве твоих инсталляций.


 
Медвежонок Пятачок ©   (2009-03-14 02:31) [83]

Что было в поставке - то и обновляется...

Нужен новый триггер.
Ты пока не знаешь, если ли он или его нет.
Или может он есть, но инвалидный и требует удаления\создания или пересоздания.

твои действия?


 
turbouser ©   (2009-03-14 02:37) [84]


> Медвежонок Пятачок ©   (14.03.09 02:31) [83]
>
> Что было в поставке - то и обновляется...
>
> Нужен новый триггер.
> Ты пока не знаешь, если ли он или его нет.
> Или может он есть, но инвалидный и требует удаления\создания
> или пересоздания.
>
> твои действия?

У меня сделано так : сравнение структур с эталонной бд и изменение существующей, разумеется с бекапами. (+много еще чего. ноу хау :) )


 
Медвежонок Пятачок ©   (2009-03-14 02:40) [85]

У меня сделано так : сравнение структур с эталонной бд и изменение существующей, разумеется с бекапами. (+много еще чего. ноу хау :) )

Ну так все таки.
Допустим у юзера появилась новая эталонная бд.
В ней есть новый триггер.
Есть текущая бд.
И надо чтобы триггер появился и в ней.

Причем неизвестно, какой именно сервер стоит у клиента.


 
turbouser ©   (2009-03-14 02:50) [86]


> Медвежонок Пятачок ©   (14.03.09 02:40) [85]

Еще раз... последний... можно сделать свой сетап...


 
Медвежонок Пятачок ©   (2009-03-14 02:54) [87]

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

Как я понял, ты все же понял, что метаданные в разных версиях разные, и не все так просто с обновлением структуры бд.
Но признать это нет сил.


 
Тын-Дын ©   (2009-03-14 02:57) [88]


> Медвежонок Пятачок ©   (14.03.09 02:30) [82]
> Единственный аргумент - апелляция к сомнительному личному
> опыту.Расскажи про свой несомнительный опыт.Я так и не услышал
> о количесстве твоих инсталляций.


Ты думаешь, я с тобой меряться буду?

Ты все аргументы пропустил мимо ушей, а своих так и не привёл.


> turbouser ©   (14.03.09 02:50) [86]


Изначально разговор идёт об однопользовательской СУБД.

Аргументы ПРОТИВ MSAccess и ЗА FB Embedded:

1.
MS Jet может отсутствовать на ПК (а таких очень много). Придётся тащить дистрибутив для установки.
FBE не нужно устанавливать. он будет входить в состав дистрибутива приложения
2.
MS Jet может  быть не той версии. Что делать в этом случае?
FBE всегда нужной версии и не зависит ни от каких обновлений и изменений ПО на ПК.

3.
MS Jet - не полноценная СУБД.
FB - полноценная однопользовательская СУБД.

Я так и не увидел аргументов против этих высказываний.


 
Медвежонок Пятачок ©   (2009-03-14 02:59) [89]

можно сделать свой сетап...

чем твой сетап поможет?
волшебством?

при изначальной  установке оказалось, что у юзера стоит иб.
инсталляция выполнила ддл скрипт и создала базу иб.

твой сетап содержит эталонную базу фб, а сервера фб у юзера нет.

что дальше?


 
Медвежонок Пятачок ©   (2009-03-14 03:00) [90]

Изначально разговор идёт об однопользовательской СУБД.

Ты это сам придумал, или это явно указано в вопросе автора?


 
turbouser ©   (2009-03-14 03:02) [91]


> Медвежонок Пятачок ©   (14.03.09 02:54) [87]

Только наивный студент мог так подытожить сию дискуссию.
Что поделаешь... Адью.


 
Тын-Дын ©   (2009-03-14 03:04) [92]


> Медвежонок Пятачок ©   (14.03.09 03:00) [90]
> Изначально разговор идёт об однопользовательской СУБД.Ты
> это сам придумал, или это явно указано в вопросе автора?
>


Сам придумал. А что?

ПО крайней мере, у автора не вызвала отторжения эта мысль.

Но ты так и не ответил на [88].

PS.
А вот при необходимости FBE легко и без напрягов переводится на FB Server.


 
Медвежонок Пятачок ©   (2009-03-14 03:07) [93]

Ты думаешь, я с тобой меряться буду?

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

по ходу дела не имеешь.
а весь опыт работы внутри корпоратива он конечно сам по себе ценен несомненно. Но есть области, где его просто недостаточно.

Это опять таки из собствнного опыта.
работал в команде где были люди более продвинутые в разработке чем я, и тем не менее всю жизнь они разрабатывали под сервера, которые находились под боком.
Когда условия работы несколько поменялись, и разрабатываемое ПО стало уходить наружу, то они просто раз за разом садились в лужу по самое нехочу каждый раз когда приходилось обновлять что-то.


 
Тын-Дын ©   (2009-03-14 03:08) [94]


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


О чём это говорит?
Об ошибках проектирования или о недостаточной квалификации? Или о том и другом одновременно?


 
Медвежонок Пятачок ©   (2009-03-14 03:08) [95]

Но ты так и не ответил на [88].

ТРИ раза сказал, что длл не поменяется, но запросто может поменяться одс у файла данных.

Но ты это упорно игнорируешь


 
Тын-Дын ©   (2009-03-14 03:09) [96]

Это говорит скорее о неправильном технологическом процессе в фирме.


 
Тын-Дын ©   (2009-03-14 03:09) [97]


> ТРИ раза сказал, что длл не поменяется, но запросто может
> поменяться одс у файла данных.


Почему он должен поменяться?


 
Медвежонок Пятачок ©   (2009-03-14 03:10) [98]

О чём это говорит?
Об ошибках проектирования или о недостаточной квалификации? Или о том и другом одновременно?


Они были примерно такого же мнения о возможных проблемах деплоя как и ты.
"Какие такие могут быть проблемы?!" - вот их искреннее мнение на этот счет.


 
Медвежонок Пятачок ©   (2009-03-14 03:11) [99]

Почему он должен поменяться?

Юзер поставил сервер.
И сделал бэкап\рестор.
Да, да, я знаю. В твоем приложении это должно делаться простым копированием файла.

Но юзер взял и сделал бэкап\рестор.


 
Медвежонок Пятачок ©   (2009-03-14 03:13) [100]

Что поделаешь... Адью.

Да да. Очень обяжешь, если исчезнешь из обсуждения.


 
Тын-Дын ©   (2009-03-14 03:16) [101]


> Юзер поставил сервер.И сделал бэкап\рестор.Да, да, я знаю.
>  В твоем приложении это должно делаться простым копированием
> файла.


Если это не предусмотрено (резервное сохранение/восстановление) средствами сервера, то такая ситуация решается административно.


 
Тын-Дын ©   (2009-03-14 03:17) [102]

Ладно, может с утра ещё кто подключится к дискуссии и внесёт свежую струю...


 
Медвежонок Пятачок ©   (2009-03-14 03:20) [103]

Если это не предусмотрено (резервное сохранение/восстановление) средствами сервера,

Какая именно версия сервера не предусматривает бэкапы?

то такая ситуация решается административно.

Административно можно решать  вопросы внутри своего ОАО, ООО, и гаражного кооператива.

Я выше описал реальную ситуацию. ООО, две тетки две персоналки и студент раз в месяц. Ну еще генеральный, который в тетрис умеет играть.

Ага. щас мы там административно порешаем все вопросы. и пофик, что я один, а этих ООО сотни и тысячи.


 
sniknik ©   (2009-03-14 04:38) [104]

> Чем отличается полноценная СУБД от прочих?
> Тем, что движок этой СУБД
> 1) отделён от данных
> 2) отделён от пользователя
> 3) поддерживает транзакции и откат транзакций как вперёд, так и назад.

> Поддерживаются ли эти условия в MS Jet для Access?

> 1) отделён от данных
отделен даже больше чем Embedded, у аксесс данные идут через COM объект (фактически аналог сервера) у Embedded через dll которая рядом с программой (при статическом связывании фактически часть ее, и вроде как в этом случае в одном адресном пространстве с программой).

> 2) отделён от пользователя
а как же, точно также как и Embedded, файл базы лежит на той же машине... :) но у аксесс есть возможность (впрочем никогда, никем не используемая) удалить базу от пользователя, даже на другую машину... а для доступа использовать интерфейсы обьекта RDSServer.DataFactory/DataControl

> 3) поддерживает транзакции и откат транзакций как вперёд, так и назад.
что значит вперед/назад? впрочем неважно. поддерживается до 5 уровней вложенности транзакций. решай сам достаточно это или нет.

> MS Jet может отсутствовать на ПК
может
> (а таких очень много).
за все время встречал 3 раза... один раз, целая партия в 20 машин с установленной спец виндой (98) без DCOM. и соответственно всего от чего зависит. но это такая специальная винда на которой очень много чего не работает (возможно даже и FB). т.к. когда это выяснили была чуть ли не паника ни одна из нужных прог не работала, не только наша. (покупали новую)
второй, когда только только XP появилась ктото поставил ее с пиратки, ну и хотя она и говорила (в реестре было прописано)  что стоит jet 4 sp7 но файлов не было. и не ставилось... т.к. полная установка это 3sp а дальше только апдейты... догадайся как решили...
ну и третий (любимый случай :)) один начитался журнала хакер и давай с сервера все не нужное удалять по его рекомендациям... пришлось посылать цто - шника по запросу "ваша прога не ставится"... ага, а там ничего как оказалось не ставится... не запускается просто ничего сложнее блокнота.

> Придётся тащить дистрибутив для установки.
а dll конечно тащить не надо... причем всегда, в отличие от "на тот невероятный случай если все таки нету".
и к тому же лучше не тащить, а включить в свой установщик (или ты думаешь он только файлы копирует?), который и поставит все без вопросов, если конечно его там вдруг не окажется.

> MS Jet может  быть не той версии. Что делать в этом случае?
а ничего, взаимодействие с интерфейсами не менялось с 5sp (2000г 2000версия включен по умолчанию в 2000ю винду), да и тогда изменения взаимодействия с внешними(для com-а) программами были минимальны (кто помнит ошибка с Bof/Eof при пустом рекордсете была от этого, но только в борланде, если бы константы не хранили в исходниках, а получали от обьекта как VB и этого бы не заметили).

> MS Jet - не полноценная СУБД.
сильный аргумент... просто железобетонный... хотя для нормальных, непредвзятых людей (ктото тут кого то в этом обвинял...) это не аксиома, не аргумент, а мнение которое еще надо доказать.


 
turbouser ©   (2009-03-14 04:39) [105]


> Тын-Дын ©   (14.03.09 03:17) [102]

Врятли... Все уже по полочкам разложено.. Ну не может Медвежонок Пятачок © понять... и свою т.з. объяснить толково не может... его проблемы... :(


 
turbouser ©   (2009-03-14 04:48) [106]


> sniknik ©   (14.03.09 04:38) [104]

ну как же без Access и MSSQL? Да прям в никуда...


 
ZeroDivide ©   (2009-03-14 05:19) [107]


> Ладно, может с утра ещё кто подключится к дискуссии и внесёт
> свежую струю...


Охотно :)


> Я выше описал реальную ситуацию. ООО, две тетки две персоналки
> и студент раз в месяц. Ну еще генеральный, который в тетрис
> умеет играть.
...
> Приходишь, ставишь. Все работает.
> Через неделю там ставят ПО третьей стороны, тоже использующее и
> ставящее сервер FB.


Ситуация понятна. Но виноват ли в ней FireBird?
С точки зрения теток, между прочим, виноват тоже не FireBird, а Вы! :)
И тетки, если серьезно, недалеки от истины...

Разумеется, признаемся честно, виновата третья сторона (а не FireBird, опять же), которая не поняла, что FB уже установлен и что-то на нем крутится. И именно третья сторона должна решать проблему... а иначе морду им набить.

Несовместимость различных версий СУБД это вовсе не аргумент в споре о неприменимости их в решении каких-то задач. Иначе, так же можно рассуждать например и о бескомпромисных всефункциональных монстрах:
У нас стоял 10-ый Oracle, пришла третья сторона все снесла нафиг и поставила 7-ий Oracle на этот сервер.... и теперь не работает... ну бред же это... :)

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

Но в случае с FB, даже не с embeded-версией (там совсем таких проблем нет), все эти вопросы можно решить программно. Можно вынести часть в инсталлятор: определение установлен ли уже FB, какой он версии. Если установлен и нас устраивает, находим куда он установлен и прописываемся ему в aliases.conf. Все чисто, красиво и не трогает других приложений, работающих с этим же сервером. Если стоит IB или FB с более ранним ODS или еще по каким-то причинам нас не устраивающая, инсталлятор предложит ограничиться embeded, порекомендует установить сервер на другой компьютер в сети или отправит к руководству по разнесению серверов по разным портам. Да и руководство к ПО должно быть написано так, что если и возникает потребность в обслуживании/настройке/диагностике, то все моменты должны быть там описаны в понятной для целевой аудитории форме.

Ну и в код, тоже диагностику можно воткнуть, которая при запуске, в случае чего, человеческим языком бы все объяснила.

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

> Ага. щас мы там административно порешаем все вопросы. и пофик, что я один, а этих ООО сотни и тысячи.

Тысячи ООО и я - один... и разработчик и сопровождение :)

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


 
turbouser ©   (2009-03-14 05:28) [108]


> ZeroDivide ©   (14.03.09 05:19) [107]

Блин! Я же то же самое втирать этим апологетам хаоса пытался...
Да еще и .... блин.. От Еть!


 
turbouser ©   (2009-03-14 05:33) [109]


> ZeroDivide ©

Respect!


 
atruhin ©   (2009-03-14 08:34) [110]

> [99] Медвежонок Пятачок ©   (14.03.09 03:11)
> Да, да, я знаю. В твоем приложении это должно делаться простым
> копированием файла.
> Но юзер взял и сделал бэкап\рестор.

А если юзер взял и БД акцесса hex редактором поправил? Действие то аналогичное.
Какого хрена разработчик должен отвечать за то, что юзер сделал с БД, с помощью
посторонних средств, не имеющих отношения к программе, и не входящих в пакет?

> Нужен новый триггер.
> Ты пока не знаешь, если ли он или его нет.
> Или может он есть, но инвалидный и требует удаления\создания
> или пересоздания.
> твои действия?

У БД есть версия. Есть скрипты обновления переводящие БД к следующей версии,
откуда взялся неучтенный тригер?
Да даже если у тебя в БД бардак, и ты не знаешь, что там есть, объясни чем отличается
определение наличия тригера в любой версии IB, FB, YA
? Только без демагогии, ответь на
конкретный вопрос.
PS/ А то действительно написал массу постов, и ни одного конкретного примера, ни одному
из оппонентов.


 
atruhin ©   (2009-03-14 08:44) [111]

> [45] Медвежонок Пятачок ©   (14.03.09 00:15)
> Когда у авторов фб от версии к версии регулярно руки чешуться
> поменять что-то в системных таблицах.

Приведи хоть одно изменение системных таблиц за все время существования FB?
Затем приведи изменение в сист. таблицах, нарушающее обратную совместимость!
Или это тоже высказывание из разряда "сначала напишу, а затем подумаю".


 
Админ   (2009-03-14 08:55) [112]

Медвежонок Пятачок ©   (12.03.09 12:06) [6]
Акцесс без вариантов


+1


 
Админ   (2009-03-14 09:21) [113]

Читаем ТЗ:

дед Маздай ©   (12.03.09 11:29)  
Какую бы взять СУБД для следующей задачи. Пяток таблиц, сотня записей в каждой каждый месяц (рост весь период эксплуатации), лог (отсюда пожелание, поддержка тригерров), поддержка вьюшек. Ну вот, вроде бы и все. А, вот еще, желательно, даже обязательно - файловая. Без установки в систему. Т.е. набор длл в каталоге программы, который (каталог) можно взять, скопировать и запустить на другой машине.


Берем Аццесс и флаг в руки.

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

И все ваши обсуждения в корзину.


 
Медвежонок Пятачок ©   (2009-03-15 04:04) [114]

Ситуация понятна. Но виноват ли в ней FireBird?

А кто-то говорил, что виноват ФБ?
Я в самом начале ветки наприсал черным по белому:
"к самому фб как таковому претензий нет"

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


 
Медвежонок Пятачок ©   (2009-03-15 04:06) [115]

Приведи хоть одно изменение системных таблиц за все время существования FB?

Давай лучше ты приведи здесь sql код для выяснения существует ли триггер в базе.

Для иб, для фб 1.x , для фб2.x


 
Медвежонок Пятачок ©   (2009-03-15 04:12) [116]

У БД есть версия. Есть скрипты обновления переводящие БД к следующей версии,
откуда взялся неучтенный тригер?
Да даже если у тебя в БД бардак, и ты не знаешь, что там есть, объясни чем отличается
определение наличия тригера в любой версии IB, FB, YA
? Только без демагогии, ответь на
конкретный вопрос.
PS/ А то действительно написал массу постов, и ни одного конкретного примера, ни одному
из оппонентов.


Какой бардак, юноша?
ПО развивается и модифицируется.
В версии x появилась новая таблица.
В версии х+1 появился новый триггер
В версии Х+2 появился еще что-то.

Пользователей много.
Не все качают все обновления подряд.
Может быть случай, когда юзер обновляется с версии х сразу на версию х+10.

У тебя как я понял, за это ему будет пожизненный эцих с гвоздями.

У меня - ничего не будет. Он просто обновится с любой версии на любую более старшую и будет работать как ни в чем ни бывало.

Где здесь увиден бардак?


 
sniknik ©   (2009-03-15 10:23) [117]

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

> с помощью посторонних средств, не имеющих отношения к программе, и не входящих в пакет?
а почему нет? если он пользуется стандартными утилитами, от основного "пакета" - собственно sql сервера.
вот для аксеса можно, хоть аксесом сжать (тоже рекомендованная процедура, правда рекомендуется делать ее пореже), хоть из odbc администратора, чужой программы, своей программы в общем в чем найдет тем пусть и делает (и даже hex редактором если сможет там правильно сжать...).


 
atruhin ©   (2009-03-15 11:51) [118]

> [117] sniknik ©   (15.03.09 10:23)

Ну и пусть делает бэкап/рестор используя клиентскую dll поставляемую с ПО, и все будет нормально работать.
А если он использует внешний сервер более старшей версии, то кто виноват, что БД не будет после этого
работать на более младшей?
Не знаю как у других серверов, но в FB b/r это способ перевода БД на более новую версию, и не вижу в этом
больших недостатков. Ресториш на более новой версии, ну так с ней и работай.
У того же Microsoft MS VS Runtime dll не совместимы даже между разными сервис паками одной версии, не говоря
о разных версиях, и никто не кричит, почему ПО не работает если поменять dll/


 
Anatoly Podgoretsky ©   (2009-03-15 13:05) [119]

> atruhin  (15.03.2009 11:51:58)  [118]

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


 
sniknik ©   (2009-03-15 13:40) [120]

> Ну и пусть делает бэкап/рестор используя клиентскую dll поставляемую с ПО, и все будет нормально работать.
пусть делает, не возражаю... но тогда утилиту для этого нужно тоже таскать с собой в пакете вместе с dll, а это уже не "просто dll-ку вместе с программой кинул и работает", это уже должен быть нормальный сетап со всем необходимым.

> и никто не кричит, почему ПО не работает если поменять dll/
ты опять не видишь разницы? плевать когда что то после обновления внутри себя не совместимо с частями от другой версии, это нормально, главное чтобы клиентское ПО, то что с этим работает не видело разницы в интерфейсах, взаимодействии с этими версиями.

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



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

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

Наверх





Память: 0.72 MB
Время: 0.016 c
15-1237488048
KSergey
2009-03-19 21:40
2009.05.24
Запуск программы под другой уетной записью


2-1239014028
Roman88
2009-04-06 14:33
2009.05.24
Определить наличие процедуры


2-1239550339
Новичок
2009-04-12 19:32
2009.05.24
Помогите обратиться к параметрам FilterOptions


2-1238133229
Alexandra
2009-03-27 08:53
2009.05.24
Как создать LargeButton в dxBarManager?


2-1239018375
Summer
2009-04-06 15:46
2009.05.24
Нажатие мышью в TChart





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