Added feature #49272: Add support for mp3 audio captcha rendering
authorstan <stan@735d13b6-9817-0410-8766-e36946ffe9aa>
Wed, 19 Jun 2013 23:21:44 +0000 (23:21 +0000)
committerstan <stan@735d13b6-9817-0410-8766-e36946ffe9aa>
Wed, 19 Jun 2013 23:21:44 +0000 (23:21 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Extensions/sr_freecap/trunk@76649 735d13b6-9817-0410-8766-e36946ffe9aa

265 files changed:
ChangeLog
Classes/Utility/AudioContentUtility.php [new file with mode: 0644]
Classes/Utility/LocalizationUtility.php
Classes/Utility/Mp3ContentUtility.php [new file with mode: 0644]
Classes/Utility/WavContentUtility.php [deleted file]
Classes/View/AudioPlayer/AbstractPlayFormat.php [new file with mode: 0644]
Classes/View/AudioPlayer/PlayMp3.php [new file with mode: 0644]
Classes/View/AudioPlayer/PlayWav.php
Classes/ViewHelpers/AudioViewHelper.php
Resources/Private/Captcha/Voices/de/0.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/1.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/2.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/3.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/4.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/5.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/6.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/7.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/8.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/9.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/a.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/b.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/c.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/d.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/e.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/f.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/g.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/h.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/i.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/j.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/k.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/l.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/m.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/n.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/o.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/p.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/q.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/r.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/s.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/t.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/u.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/v.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/w.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/x.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/y.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/z.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/ß.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/ä.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/ö.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/de/ü.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/0.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/1.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/2.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/3.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/4.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/5.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/6.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/7.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/8.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/9.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/a.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/b.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/c.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/d.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/e.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/f.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/g.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/h.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/i.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/j.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/k.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/l.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/m.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/n.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/o.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/p.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/q.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/r.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/s.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/t.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/u.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/v.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/w.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/x.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/y.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/default/z.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/0.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/1.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/2.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/3.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/4.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/5.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/6.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/7.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/8.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/9.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/a.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/b.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/c.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/d.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/e.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/f.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/g.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/h.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/i.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/j.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/k.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/l.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/m.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/n.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/o.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/p.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/q.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/r.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/s.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/t.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/u.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/v.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/w.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/x.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/y.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/z.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/á.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/é.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/í.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/ñ.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/ó.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/ú.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/es/ü.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/0.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/1.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/2.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/3.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/4.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/5.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/6.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/7.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/8.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/9.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/a.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/b.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/c.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/d.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/e.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/f.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/g.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/h.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/i.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/j.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/k.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/l.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/m.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/n.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/o.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/p.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/q.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/r.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/s.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/t.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/u.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/v.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/w.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/x.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/y.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/z.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/à.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/â.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/ä.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/ç.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/è.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/é.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/ê.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/ë.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/î.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/ï.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/ô.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/ö.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/û.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/fr/ü.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/0.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/1.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/2.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/3.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/4.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/5.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/6.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/7.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/8.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/9.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/a.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/b.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/c.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/d.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/e.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/f.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/g.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/h.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/i.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/j.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/k.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/l.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/m.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/n.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/o.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/p.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/q.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/r.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/s.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/t.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/u.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/v.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/w.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/x.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/y.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/z.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/à.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/è.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/é.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/it/ò.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/0.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/1.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/2.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/4.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/5.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/6.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/7.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/8.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/9.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/a.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/b.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/c.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/d.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/e.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/f.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/g.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/h.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/i.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/j.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/k.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/l.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/m.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/n.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/o.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/p.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/q.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/r.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/s.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/t.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/u.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/v.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/w.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/x.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/y.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/z.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/à.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/á.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/ã.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/ç.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/é.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/ê.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/í.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/ó.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/õ.mp3 [new file with mode: 0644]
Resources/Private/Captcha/Voices/pt/ú.mp3 [new file with mode: 0644]
Resources/Public/JavaScript/freeCap.js
doc/manual.sxw

index 0924942..f39afa2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-06-19  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Added feature #49272: Add support for mp3 audio captcha rendering
+
 2013-05-24  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Fixed issue #48516: Replace some default fonts for better readability
diff --git a/Classes/Utility/AudioContentUtility.php b/Classes/Utility/AudioContentUtility.php
new file mode 100644 (file)
index 0000000..c8b1b0f
--- /dev/null
@@ -0,0 +1,136 @@
+<?php
+namespace SJBR\SrFreecap\Utility;
+/***************************************************************
+*  Copyright notice
+*
+*  (c) 2012-2013 Stanislas Rolland <typo3(arobas)sjbr.ca>
+*  All rights reserved
+*
+*  This script is part of the TYPO3 project. The TYPO3 project is
+*  free software; you can redistribute it and/or modify
+*  it under the terms of the GNU General Public License as published by
+*  the Free Software Foundation; either version 2 of the License, or
+*  (at your option) any later version.
+*
+*  The GNU General Public License can be found at
+*  http://www.gnu.org/copyleft/gpl.html.
+*  A copy is found in the textfile GPL.txt and important notices to the license
+*  from the author is found in LICENSE.txt distributed with these scripts.
+*
+*
+*  This script is distributed in the hope that it will be useful,
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*  GNU General Public License for more details.
+*
+*  This copyright notice MUST APPEAR in all copies of the script!
+***************************************************************/
+/**
+ * Utility dealing with audio content
+ *
+ * @author     Stanislas Rolland       <typo3(arobas)sjbr.ca>
+ */
+class AudioContentUtility {
+
+       /**
+        * Joins multiple audio files
+        *
+        * @param array $files: the array of audio files
+        * @param string $format: the audio format       
+        *
+        * @return string the contents of joined audio file
+        */
+       public static function joinAudioFiles($files, $format = 'wav') {
+               switch ($format) {
+                       case 'mp3':
+                               return self::joinMp3Files($files);
+                               break;
+                       case 'wav':
+                       default:
+                               return self::joinWavFiles($files);
+                               break;
+               }
+       }
+
+       /**
+        * Joins multiple wav files
+        *
+        * All wave files need to have the same format and need to be uncompressed.
+        * The headers of the last file will be used (with recalculated datasize
+        * of course)
+        *
+        * @link        http://ccrma.stanford.edu/CCRMA/Courses/422/projects/WaveFormat/
+        * @link        http://www.thescripts.com/forum/thread3770.html
+        * @license     GPL 2 (http://www.gnu.org/licenses/gpl.html)
+        * @author      Andreas Gohr <gohr@cosmocode.de>
+        *
+        * @param       array           $wavs: the array of wav files
+        *
+        * @return      string          the contents of joined wav file
+        */
+       protected static function joinWavFiles ($wavs) {
+               $fields = join('/', array(
+                       'H8Format',
+                       'H8Subchunk1ID',
+                       'VSubchunk1Size',
+                       'vAudioFormat',
+                       'vNumChannels',
+                       'VSampleRate',
+                       'VByteRate',
+                       'vBlockAlign',
+                       'vBitsPerSample'
+               ));
+               $data = '';
+               foreach ($wavs as $wav){
+                       $fp = fopen($wav, 'rb');
+                               // Read ChunkID
+                       $headerPart1 = fread($fp, 4);
+                               // Read ChunkSize
+                       $headerPart2 = fread($fp, 4);
+                               // Read following fields
+                       $headerPart3 = fread($fp, 28);
+                       $info = unpack($fields, $headerPart3);
+                               // Read optional extra stuff
+                               // We will not use this since AudioFormat of all our sound files is PCM
+                       if ($info['Subchunk1Size'] > 16) {
+                               $headerPart3 .= fread($fp, ($info['Subchunk1Size']-16));
+                       }
+                               // Read SubChunk2ID
+                       $headerPart3 .= fread($fp, 4);
+                               // Read Subchunk2Size
+                       $size = unpack('VSubChunk2Size', fread($fp, 4));
+                       $size = $size['SubChunk2Size'];
+                               // Read data
+                       $data .= fread($fp, $size);
+                       fclose($fp);
+               }
+               return $headerPart1 . pack('V', 36 + strlen($data)) . $headerPart3 . pack('V', strlen($data)) . $data;
+       }
+
+       /**
+        * Joins multiple wav files
+        *
+        * All wave files need to have the same format and need to be uncompressed.
+        * The headers of the last file will be used (with recalculated datasize
+        * of course)
+        *
+        * @link        http://ccrma.stanford.edu/CCRMA/Courses/422/projects/WaveFormat/
+        * @link        http://www.thescripts.com/forum/thread3770.html
+        * @license     GPL 2 (http://www.gnu.org/licenses/gpl.html)
+        * @author      Andreas Gohr <gohr@cosmocode.de>
+        *
+        * @param       array           $wavs: the array of wav files
+        *
+        * @return      string          the contents of joined wav file
+        */
+       protected static function joinMp3Files ($files) {
+               $data = '';
+               foreach ($files as $file) {
+                       $mp3 = new Mp3ContentUtility($file);
+                       $data .= $mp3->striptags();
+               }
+               return $data;
+       }
+
+}
+?>
\ No newline at end of file
index 181a7d7..88174ed 100644 (file)
@@ -89,7 +89,7 @@ class LocalizationUtility {
         */
        public static function getVoicesDirectory() {
                self::setLanguageKeys();
-               $path = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath(self::$extensionKey) . '/Resources/Private/Captcha/Voices/';
+               $path = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath(self::$extensionKey) . 'Resources/Private/Captcha/Voices/';
                $voicesDirectory = $path . self::$languageKey . '/';
                if (!is_dir($voicesDirectory)) {
                        foreach (self::$alternativeLanguageKeys as $language) {
diff --git a/Classes/Utility/Mp3ContentUtility.php b/Classes/Utility/Mp3ContentUtility.php
new file mode 100644 (file)
index 0000000..5da54e0
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+namespace SJBR\SrFreecap\Utility;
+/***************************************************************
+*  Copyright notice
+*
+*  (c) 2012-2013 Stanislas Rolland <typo3(arobas)sjbr.ca>
+*  All rights reserved
+*
+*  This script is part of the TYPO3 project. The TYPO3 project is
+*  free software; you can redistribute it and/or modify
+*  it under the terms of the GNU General Public License as published by
+*  the Free Software Foundation; either version 2 of the License, or
+*  (at your option) any later version.
+*
+*  The GNU General Public License can be found at
+*  http://www.gnu.org/copyleft/gpl.html.
+*  A copy is found in the textfile GPL.txt and important notices to the license
+*  from the author is found in LICENSE.txt distributed with these scripts.
+*
+*
+*  This script is distributed in the hope that it will be useful,
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*  GNU General Public License for more details.
+*
+*  This copyright notice MUST APPEAR in all copies of the script!
+***************************************************************/
+/**
+ * Utility dealing with mp3 audio content
+ * See http://www.theblog.ca/merge-mp3s-php
+ *
+ * @author     Stanislas Rolland       <typo3(arobas)sjbr.ca>
+ */
+class Mp3ContentUtility {
+
+       var $content;
+
+       // Create a new mp3
+       public function __construct($file = '') {
+               if ($file != '') {
+                       $this->content = file_get_contents($file);
+               }
+       }
+
+       // Get the mp3 content
+       public function getContent() {
+               return $this->content;
+       }
+
+       // Calculate where's the beginning of the sound file
+       protected function getStart() {
+               $strlen = strlen($this->content);
+               for ($i=0; $i < $strlen; $i++) {
+                       $v = substr($this->content, $i, 1);
+                       $value = ord($v);
+                       if ($value == 255) {
+                               return $i;
+                       }
+               }
+       }
+
+       // Calculate where's the end of the sound file 
+       protected function getIdvEnd() {
+               $strlen = strlen($this->content);
+               $str = substr($this->content, ($strlen - 128));
+               $str1 = substr($str, 0, 3);
+               if (strtolower($str1) == strtolower('TAG')) {
+                       return $str;
+               } else {
+                       return FALSE;
+               }
+       }
+
+       // Remove the ID3 tags 
+       public function striptags() {
+               // Remove start stuff... 
+               $newStr = '';
+               $s = $start = $this->getStart();
+               if ($s === FALSE) {
+                       return FALSE;
+               } else {
+                       $this->content = substr($this->content, $start);
+               }
+               //Remove end tag stuff
+               $end = $this->getIdvEnd();
+               if ($end !== FALSE) {
+                       $this->content = substr($this->content, 0, (strlen($this->content)-129));
+               }
+               return $this->content;
+       }
+}
+?>
\ No newline at end of file
diff --git a/Classes/Utility/WavContentUtility.php b/Classes/Utility/WavContentUtility.php
deleted file mode 100644 (file)
index d7e6243..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-namespace SJBR\SrFreecap\Utility;
-/***************************************************************
-*  Copyright notice
-*
-*  (c) 2012 Stanislas Rolland <typo3(arobas)sjbr.ca>
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license
-*  from the author is found in LICENSE.txt distributed with these scripts.
-*
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-/**
- * Utility dealing with wav content
- *
- * @author     Stanislas Rolland       <typo3(arobas)sjbr.ca>
- */
-class WavContentUtility {
-
-       /**
-        * Joins multiple wav files
-        *
-        * All wave files need to have the same format and need to be uncompressed.
-        * The headers of the last file will be used (with recalculated datasize
-        * of course)
-        *
-        * @link        http://ccrma.stanford.edu/CCRMA/Courses/422/projects/WaveFormat/
-        * @link        http://www.thescripts.com/forum/thread3770.html
-        * @license     GPL 2 (http://www.gnu.org/licenses/gpl.html)
-        * @author      Andreas Gohr <gohr@cosmocode.de>
-        *
-        * @param       array           $wavs: the array of wav files
-        *
-        * @return      string          the contents of joined wav file
-        */
-       public static function joinWaveFiles ($wavs) {
-               $fields = join('/', array(
-                       'H8Format',
-                       'H8Subchunk1ID',
-                       'VSubchunk1Size',
-                       'vAudioFormat',
-                       'vNumChannels',
-                       'VSampleRate',
-                       'VByteRate',
-                       'vBlockAlign',
-                       'vBitsPerSample'
-               ));
-               $data = '';
-               foreach ($wavs as $wav){
-                       $fp = fopen($wav, 'rb');
-                               // Read ChunkID
-                       $headerPart1 = fread($fp, 4);
-                               // Read ChunkSize
-                       $headerPart2 = fread($fp, 4);
-                               // Read following fields
-                       $headerPart3 = fread($fp, 28);
-                       $info = unpack($fields, $headerPart3);
-                               // Read optional extra stuff
-                               // We will not use this since AudioFormat of all our sound files is PCM
-                       if ($info['Subchunk1Size'] > 16) {
-                               $headerPart3 .= fread($fp, ($info['Subchunk1Size']-16));
-                       }
-                               // Read SubChunk2ID
-                       $headerPart3 .= fread($fp, 4);
-                               // Read Subchunk2Size
-                       $size = unpack('VSubChunk2Size', fread($fp, 4));
-                       $size = $size['SubChunk2Size'];
-                               // Read data
-                       $data .= fread($fp, $size);
-                       fclose($fp);
-               }
-               return $headerPart1 . pack('V', 36 + strlen($data)) . $headerPart3 . pack('V', strlen($data)) . $data;
-       }
-}
-?>
\ No newline at end of file
diff --git a/Classes/View/AudioPlayer/AbstractPlayFormat.php b/Classes/View/AudioPlayer/AbstractPlayFormat.php
new file mode 100644 (file)
index 0000000..5b5a597
--- /dev/null
@@ -0,0 +1,181 @@
+<?php
+namespace SJBR\SrFreecap\View\AudioPlayer;
+/***************************************************************
+*  Copyright notice
+*
+*  (c) 2013 Stanislas Rolland <typo3(arobas)sjbr.ca>
+*  All rights reserved
+*
+*  This script is part of the TYPO3 project. The TYPO3 project is
+*  free software; you can redistribute it and/or modify
+*  it under the terms of the GNU General Public License as published by
+*  the Free Software Foundation; either version 2 of the License, or
+*  (at your option) any later version.
+*
+*  The GNU General Public License can be found at
+*  http://www.gnu.org/copyleft/gpl.html.
+*  A copy is found in the textfile GPL.txt and important notices to the license
+*  from the author is found in LICENSE.txt distributed with these scripts.
+*
+*
+*  This script is distributed in the hope that it will be useful,
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*  GNU General Public License for more details.
+*
+*  This copyright notice MUST APPEAR in all copies of the script!
+***************************************************************/
+/**
+ * Abstract class for rendering an audio version of the CAPTCHA
+ *
+ * @author     Stanislas Rolland       <typo3(arobas)sjbr.ca>
+ */
+class AbstractPlayFormat implements \TYPO3\CMS\Extbase\Mvc\View\ViewInterface {
+
+       /**
+        * @var string Name of the extension this view helper belongs to
+        */
+       protected $extensionName = 'SrFreecap';
+
+       /**
+        * @var string Key of the extension this view helper belongs to
+        */
+       protected $extensionKey = 'sr_freecap';
+
+       /**
+        * @var \TYPO3\CMS\Core\Domain\Model\Word
+        */
+       protected $word;
+
+       /**
+        * Sets the current controller context
+        *
+        * @param \TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext $controllerContext
+        * @return void
+        */
+       public function setControllerContext(\TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext $controllerContext) {
+       }
+
+       /**
+        * Add a variable to the view data collection.
+        * Can be chained, so $this->view->assign(..., ...)->assign(..., ...); is possible
+        *
+        * @param string $key Key of variable
+        * @param mixed $value Value of object
+        * @return \TYPO3\CMS\Extbase\Mvc\View\ViewInterface an instance of $this, to enable chaining
+        * @api
+        */
+       public function assign($key, $value) {
+               switch ($key) {
+                       case 'word':
+                               $this->word = $value;
+                               break;
+               }
+               return $this;
+       }
+
+       /**
+        * Add multiple variables to the view data collection
+        *
+        * @param array $values array in the format array(key1 => value1, key2 => value2)
+        * @return \TYPO3\CMS\Extbase\Mvc\View\ViewInterface an instance of $this, to enable chaining
+        * @api
+        */
+       public function assignMultiple(array $values) {
+               return $this;
+       }
+
+       /**
+        * Tells if the view implementation can render the view for the given context.
+        *
+        * @param \TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext $controllerContext
+        * @return boolean TRUE if the view has something useful to display, otherwise FALSE
+        * @api
+        */
+       public function canRender(\TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext $controllerContext) {
+               return TRUE;
+       }
+
+       /**
+        * Renders the audio version of captcha
+        *
+        * @return string The audio output to play
+        */
+        public function render () {
+                // Get the catcha word
+               $word = $this->getWord();
+               // Get the letter rensering files
+               $letterRenderingFiles = $this->getLetterRenderingFiles($word);
+               // Join the files
+               $audioContent = \SJBR\SrFreecap\Utility\AudioContentUtility::joinAudioFiles($letterRenderingFiles);
+               // Output proper headers
+               $this->sendHeaders($audioContent);
+               // Return the audio content
+               return $audioContent;
+       }
+
+       /**
+        * Initializes this view.
+        *
+        * @return void
+        * @api
+        */
+       public function initializeView() {
+       }
+
+       /**
+        * Gets the word that was stored in session data
+        *
+        * @return      string          the retrieved and decoded word
+        */
+       protected function getWord () {
+               // Get cypher from session data
+               $cypher =  $this->word->getWordCypher();
+               // Decrypt the word
+               $decryptedString = \SJBR\SrFreecap\Utility\EncryptionUtility::decrypt($cypher);
+               return implode('-', str_split($decryptedString));
+       }
+
+       /**
+        * Builds an array of letter rendering files in the specified format
+        *
+        * @param string $word: the word to be spelled and played
+        * @param string $extension: the audio file extension being used
+        *
+        * @return array array of file names
+        */
+       protected function getLetterRenderingFiles ($word, $extension = 'wav') {
+               $letterRenderingFiles = array();
+               // Split the word
+               $letters = str_split($word);
+               // Get the directory containing the wav files
+               $voicesDirectory = \SJBR\SrFreecap\Utility\LocalizationUtility::getVoicesDirectory();
+               // Assemble the file names
+               foreach ($letters as $letter){
+                       $file = $voicesDirectory . $letter . '.' . $extension;
+                       if (is_file($file)) {
+                               $letterRenderingFiles[] = $file;
+                       }
+               }
+               return $letterRenderingFiles;
+       }
+
+       /**
+        * Sends headers appropriate for wav content
+        *
+        * @param string $audioContent: the audio content that will be sent
+        * @param string $mimeType: the audio mime type being used
+        *
+        * @return      void
+        */
+       protected function sendHeaders ($audioContent, $mimeType = 'x-wav') {
+               header('Content-Type: audio/' . $mimeType);
+               header('Content-Transfer-Encoding: binary');
+               header('Content-Length: ' . strlen($audioContent));
+               header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
+               header('Last-Modified: ' . gmdate('D,d M YH:i:s') . ' GMT');
+               header('Pragma: no-cache');
+               header('Cache-Control: no-cache, no-store, must-revalidate');
+       }
+}
+?>
\ No newline at end of file
diff --git a/Classes/View/AudioPlayer/PlayMp3.php b/Classes/View/AudioPlayer/PlayMp3.php
new file mode 100644 (file)
index 0000000..7bee973
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+namespace SJBR\SrFreecap\View\AudioPlayer;
+/***************************************************************
+*  Copyright notice
+*
+*  (c) 2013 Stanislas Rolland <typo3(arobas)sjbr.ca>
+*  All rights reserved
+*
+*  This script is part of the TYPO3 project. The TYPO3 project is
+*  free software; you can redistribute it and/or modify
+*  it under the terms of the GNU General Public License as published by
+*  the Free Software Foundation; either version 2 of the License, or
+*  (at your option) any later version.
+*
+*  The GNU General Public License can be found at
+*  http://www.gnu.org/copyleft/gpl.html.
+*  A copy is found in the textfile GPL.txt and important notices to the license
+*  from the author is found in LICENSE.txt distributed with these scripts.
+*
+*
+*  This script is distributed in the hope that it will be useful,
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*  GNU General Public License for more details.
+*
+*  This copyright notice MUST APPEAR in all copies of the script!
+***************************************************************/
+/**
+ * Renders a mp3 audio version of the CAPTCHA
+ *
+ * @author     Stanislas Rolland       <typo3(arobas)sjbr.ca>
+ */
+class PlayMp3 extends AbstractPlayFormat {
+
+       /**
+        * Renders the audio version of captcha
+        *
+        * @return string The audio output to play
+        */
+        public function render () {
+                // Get the catcha word
+               $word = $this->getWord();
+               // Get the letter rensering files
+               $letterRenderingFiles = $this->getLetterRenderingFiles($word, 'mp3');
+               // Join the files
+               $audioContent = \SJBR\SrFreecap\Utility\AudioContentUtility::joinAudioFiles($letterRenderingFiles, 'mp3');
+               // Output proper headers
+               $this->sendHeaders($audioContent, 'mpeg');
+               // Return the audio content
+               return $audioContent;
+       }
+}
+class_alias('SJBR\SrFreecap\View\AudioPlayer\PlayMp3', 'Tx_SrFreecap_View_AudioPlayer_PlayMp3');
+?>
\ No newline at end of file
index e93184b..cd8fbe5 100644 (file)
@@ -3,7 +3,7 @@ namespace SJBR\SrFreecap\View\AudioPlayer;
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 2012 Stanislas Rolland <typo3(arobas)sjbr.ca>
+*  (c) 2012-2013 Stanislas Rolland <typo3(arobas)sjbr.ca>
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
@@ -30,151 +30,7 @@ namespace SJBR\SrFreecap\View\AudioPlayer;
  *
  * @author     Stanislas Rolland       <typo3(arobas)sjbr.ca>
  */
-class PlayWav implements \TYPO3\CMS\Extbase\Mvc\View\ViewInterface {
-
-       /**
-        * @var string Name of the extension this view helper belongs to
-        */
-       protected $extensionName = 'SrFreecap';
-
-       /**
-        * @var string Key of the extension this view helper belongs to
-        */
-       protected $extensionKey = 'sr_freecap';
-
-       /**
-        * @var \TYPO3\CMS\Core\Domain\Model\Word
-        */
-       protected $word;
-
-       /**
-        * Sets the current controller context
-        *
-        * @param \TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext $controllerContext
-        * @return void
-        */
-       public function setControllerContext(\TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext $controllerContext) {
-       }
-
-       /**
-        * Add a variable to the view data collection.
-        * Can be chained, so $this->view->assign(..., ...)->assign(..., ...); is possible
-        *
-        * @param string $key Key of variable
-        * @param mixed $value Value of object
-        * @return \TYPO3\CMS\Extbase\Mvc\View\ViewInterface an instance of $this, to enable chaining
-        * @api
-        */
-       public function assign($key, $value) {
-               switch ($key) {
-                       case 'word':
-                               $this->word = $value;
-                               break;
-               }
-               return $this;
-       }
-
-       /**
-        * Add multiple variables to the view data collection
-        *
-        * @param array $values array in the format array(key1 => value1, key2 => value2)
-        * @return \TYPO3\CMS\Extbase\Mvc\View\ViewInterface an instance of $this, to enable chaining
-        * @api
-        */
-       public function assignMultiple(array $values) {
-               return $this;
-       }
-
-       /**
-        * Tells if the view implementation can render the view for the given context.
-        *
-        * @param \TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext $controllerContext
-        * @return boolean TRUE if the view has something useful to display, otherwise FALSE
-        * @api
-        */
-       public function canRender(\TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext $controllerContext) {
-               return TRUE;
-       }
-
-       /**
-        * Renders the audio version of captcha
-        *
-        * @return string The audio output to play
-        */
-        public function render () {
-                // Get the catcha word
-               $word = $this->getWord();
-               // Get the letter rensering files
-               $letterRenderingWaveFiles = $this->getLetterRenderingWaveFiles($word);
-               // Join the files
-               $audioContent = \SJBR\SrFreecap\Utility\WavContentUtility::joinWaveFiles($letterRenderingWaveFiles);
-               // Output proper headers
-               $this->sendHeaders($audioContent);
-               // Return the audio content
-               return $audioContent;
-       }
-
-       /**
-        * Initializes this view.
-        *
-        * @return void
-        * @api
-        */
-       public function initializeView() {
-       }
-
-       /**
-        * Gets the word that was stored in session data
-        *
-        * @return      string          the retrieved and decoded word
-        */
-       protected function getWord () {
-               // Get cypher from session data
-               $cypher =  $this->word->getWordCypher();
-               // Decrypt the word
-               $decryptedString = \SJBR\SrFreecap\Utility\EncryptionUtility::decrypt($cypher);
-               return implode('-', str_split($decryptedString));
-       }
-
-       /**
-        * Builds an array of letter rendering wav files
-        *
-        * @param string $word: the word to be spelled and played
-        *
-        * @return array array of wav file names
-        */
-       protected function getLetterRenderingWaveFiles ($word) {
-               $letterRenderingWaveFiles = array();
-               // Split the word
-               $letters = str_split($word);
-               // Get the directory containing the wav files
-               $voicesDirectory = \SJBR\SrFreecap\Utility\LocalizationUtility::getVoicesDirectory();
-               // Assemble the file names
-               foreach ($letters as $letter){
-                       $file = $voicesDirectory . $letter . '.wav';
-                       if (is_file($file)) {
-                               $letterRenderingWaveFiles[] = $file;
-                       }
-               }
-               return $letterRenderingWaveFiles;
-       }
-
-       /**
-        * Sends headers appropriate for wav content
-        *
-        * @param string $audioContent: the audio content that will be sent
-        *
-        * @return      void
-        */
-       protected function sendHeaders ($audioContent) {
-               header('Content-Type: audio/x-wav');
-               header('Content-Transfer-Encoding: binary');
-               header('Content-Length: ' . strlen($audioContent));
-               header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
-               header('Last-Modified: ' . gmdate('D,d M YH:i:s') . ' GMT');
-               header('Pragma: no-cache');
-               header('Cache-Control: no-cache, no-store, must-revalidate');
-       }
+class PlayWav extends AbstractPlayFormat {
 }
 class_alias('SJBR\SrFreecap\View\AudioPlayer\PlayWav', 'Tx_SrFreecap_View_AudioPlayer_PlayWav');
 ?>
\ No newline at end of file
index e3003f3..21b1993 100644 (file)
@@ -64,10 +64,8 @@ class AudioViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelpe
                $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
                $translator = $objectManager->get('SJBR\\SrFreecap\\ViewHelpers\\TranslateViewHelper');
                $translator->injectConfigurationManager($this->configurationManager);
-               // Get browser info (as of iOS 6, audio rendering does not work)
-               $browserInfo = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('HTTP_USER_AGENT'));
                // Generate the icon
-               if ($settings['accessibleOutput'] && in_array('mcrypt', get_loaded_extensions()) && intval($GLOBALS['TYPO3_CONF_VARS']['SYS']['UTF8filesystem']) && !in_array('iOS', $browserInfo['all_systems'])) {
+               if ($settings['accessibleOutput'] && in_array('mcrypt', get_loaded_extensions()) && intval($GLOBALS['TYPO3_CONF_VARS']['SYS']['UTF8filesystem'])) {
                        $fakeId = \TYPO3\CMS\Core\Utility\GeneralUtility::shortMD5(uniqid (rand()),5);
                        $siteURL = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL');
                        $urlParams = array(
diff --git a/Resources/Private/Captcha/Voices/de/0.mp3 b/Resources/Private/Captcha/Voices/de/0.mp3
new file mode 100644 (file)
index 0000000..60ada25
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/0.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/1.mp3 b/Resources/Private/Captcha/Voices/de/1.mp3
new file mode 100644 (file)
index 0000000..258e208
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/1.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/2.mp3 b/Resources/Private/Captcha/Voices/de/2.mp3
new file mode 100644 (file)
index 0000000..8c7a037
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/2.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/3.mp3 b/Resources/Private/Captcha/Voices/de/3.mp3
new file mode 100644 (file)
index 0000000..1557e15
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/3.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/4.mp3 b/Resources/Private/Captcha/Voices/de/4.mp3
new file mode 100644 (file)
index 0000000..d460756
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/4.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/5.mp3 b/Resources/Private/Captcha/Voices/de/5.mp3
new file mode 100644 (file)
index 0000000..0c2e015
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/5.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/6.mp3 b/Resources/Private/Captcha/Voices/de/6.mp3
new file mode 100644 (file)
index 0000000..7e2aaf1
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/6.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/7.mp3 b/Resources/Private/Captcha/Voices/de/7.mp3
new file mode 100644 (file)
index 0000000..0d30e97
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/7.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/8.mp3 b/Resources/Private/Captcha/Voices/de/8.mp3
new file mode 100644 (file)
index 0000000..791052a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/8.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/9.mp3 b/Resources/Private/Captcha/Voices/de/9.mp3
new file mode 100644 (file)
index 0000000..6e3c670
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/9.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/a.mp3 b/Resources/Private/Captcha/Voices/de/a.mp3
new file mode 100644 (file)
index 0000000..acb883b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/a.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/b.mp3 b/Resources/Private/Captcha/Voices/de/b.mp3
new file mode 100644 (file)
index 0000000..59ea3a8
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/b.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/c.mp3 b/Resources/Private/Captcha/Voices/de/c.mp3
new file mode 100644 (file)
index 0000000..d868277
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/c.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/d.mp3 b/Resources/Private/Captcha/Voices/de/d.mp3
new file mode 100644 (file)
index 0000000..0864b84
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/d.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/e.mp3 b/Resources/Private/Captcha/Voices/de/e.mp3
new file mode 100644 (file)
index 0000000..f337da8
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/e.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/f.mp3 b/Resources/Private/Captcha/Voices/de/f.mp3
new file mode 100644 (file)
index 0000000..e130f31
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/f.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/g.mp3 b/Resources/Private/Captcha/Voices/de/g.mp3
new file mode 100644 (file)
index 0000000..777cc1f
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/g.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/h.mp3 b/Resources/Private/Captcha/Voices/de/h.mp3
new file mode 100644 (file)
index 0000000..2840e7a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/h.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/i.mp3 b/Resources/Private/Captcha/Voices/de/i.mp3
new file mode 100644 (file)
index 0000000..11f6202
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/i.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/j.mp3 b/Resources/Private/Captcha/Voices/de/j.mp3
new file mode 100644 (file)
index 0000000..28834a5
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/j.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/k.mp3 b/Resources/Private/Captcha/Voices/de/k.mp3
new file mode 100644 (file)
index 0000000..3b4acec
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/k.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/l.mp3 b/Resources/Private/Captcha/Voices/de/l.mp3
new file mode 100644 (file)
index 0000000..9a8d848
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/l.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/m.mp3 b/Resources/Private/Captcha/Voices/de/m.mp3
new file mode 100644 (file)
index 0000000..42dc5ca
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/m.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/n.mp3 b/Resources/Private/Captcha/Voices/de/n.mp3
new file mode 100644 (file)
index 0000000..8cf2673
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/n.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/o.mp3 b/Resources/Private/Captcha/Voices/de/o.mp3
new file mode 100644 (file)
index 0000000..fd56193
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/o.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/p.mp3 b/Resources/Private/Captcha/Voices/de/p.mp3
new file mode 100644 (file)
index 0000000..28203c6
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/p.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/q.mp3 b/Resources/Private/Captcha/Voices/de/q.mp3
new file mode 100644 (file)
index 0000000..d685cf2
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/q.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/r.mp3 b/Resources/Private/Captcha/Voices/de/r.mp3
new file mode 100644 (file)
index 0000000..9f0a41c
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/r.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/s.mp3 b/Resources/Private/Captcha/Voices/de/s.mp3
new file mode 100644 (file)
index 0000000..eace550
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/s.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/t.mp3 b/Resources/Private/Captcha/Voices/de/t.mp3
new file mode 100644 (file)
index 0000000..d434ca9
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/t.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/u.mp3 b/Resources/Private/Captcha/Voices/de/u.mp3
new file mode 100644 (file)
index 0000000..f04a98a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/u.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/v.mp3 b/Resources/Private/Captcha/Voices/de/v.mp3
new file mode 100644 (file)
index 0000000..cefd1fb
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/v.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/w.mp3 b/Resources/Private/Captcha/Voices/de/w.mp3
new file mode 100644 (file)
index 0000000..170061e
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/w.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/x.mp3 b/Resources/Private/Captcha/Voices/de/x.mp3
new file mode 100644 (file)
index 0000000..3fdbb4d
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/x.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/y.mp3 b/Resources/Private/Captcha/Voices/de/y.mp3
new file mode 100644 (file)
index 0000000..e283a1a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/y.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/z.mp3 b/Resources/Private/Captcha/Voices/de/z.mp3
new file mode 100644 (file)
index 0000000..ed1d9e8
Binary files /dev/null and b/Resources/Private/Captcha/Voices/de/z.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/de/ß.mp3 b/Resources/Private/Captcha/Voices/de/ß.mp3
new file mode 100644 (file)
index 0000000..00cc360
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/de/\303\237.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/de/ä.mp3 b/Resources/Private/Captcha/Voices/de/ä.mp3
new file mode 100644 (file)
index 0000000..dd388e7
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/de/\303\244.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/de/ö.mp3 b/Resources/Private/Captcha/Voices/de/ö.mp3
new file mode 100644 (file)
index 0000000..54fd3d0
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/de/\303\266.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/de/ü.mp3 b/Resources/Private/Captcha/Voices/de/ü.mp3
new file mode 100644 (file)
index 0000000..7cfa479
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/de/\303\274.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/default/0.mp3 b/Resources/Private/Captcha/Voices/default/0.mp3
new file mode 100644 (file)
index 0000000..7cd497e
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/0.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/1.mp3 b/Resources/Private/Captcha/Voices/default/1.mp3
new file mode 100644 (file)
index 0000000..a2c27ac
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/1.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/2.mp3 b/Resources/Private/Captcha/Voices/default/2.mp3
new file mode 100644 (file)
index 0000000..2f2a190
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/2.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/3.mp3 b/Resources/Private/Captcha/Voices/default/3.mp3
new file mode 100644 (file)
index 0000000..347dd8b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/3.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/4.mp3 b/Resources/Private/Captcha/Voices/default/4.mp3
new file mode 100644 (file)
index 0000000..da43f37
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/4.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/5.mp3 b/Resources/Private/Captcha/Voices/default/5.mp3
new file mode 100644 (file)
index 0000000..6038327
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/5.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/6.mp3 b/Resources/Private/Captcha/Voices/default/6.mp3
new file mode 100644 (file)
index 0000000..f74d64f
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/6.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/7.mp3 b/Resources/Private/Captcha/Voices/default/7.mp3
new file mode 100644 (file)
index 0000000..ef4679b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/7.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/8.mp3 b/Resources/Private/Captcha/Voices/default/8.mp3
new file mode 100644 (file)
index 0000000..43b22b2
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/8.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/9.mp3 b/Resources/Private/Captcha/Voices/default/9.mp3
new file mode 100644 (file)
index 0000000..c0f1479
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/9.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/a.mp3 b/Resources/Private/Captcha/Voices/default/a.mp3
new file mode 100644 (file)
index 0000000..1668cd4
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/a.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/b.mp3 b/Resources/Private/Captcha/Voices/default/b.mp3
new file mode 100644 (file)
index 0000000..a0a3f91
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/b.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/c.mp3 b/Resources/Private/Captcha/Voices/default/c.mp3
new file mode 100644 (file)
index 0000000..377e7cf
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/c.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/d.mp3 b/Resources/Private/Captcha/Voices/default/d.mp3
new file mode 100644 (file)
index 0000000..fd635bc
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/d.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/e.mp3 b/Resources/Private/Captcha/Voices/default/e.mp3
new file mode 100644 (file)
index 0000000..a8462fc
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/e.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/f.mp3 b/Resources/Private/Captcha/Voices/default/f.mp3
new file mode 100644 (file)
index 0000000..c7eebe4
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/f.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/g.mp3 b/Resources/Private/Captcha/Voices/default/g.mp3
new file mode 100644 (file)
index 0000000..9313389
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/g.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/h.mp3 b/Resources/Private/Captcha/Voices/default/h.mp3
new file mode 100644 (file)
index 0000000..4025974
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/h.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/i.mp3 b/Resources/Private/Captcha/Voices/default/i.mp3
new file mode 100644 (file)
index 0000000..ae59dfe
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/i.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/j.mp3 b/Resources/Private/Captcha/Voices/default/j.mp3
new file mode 100644 (file)
index 0000000..a4a85c3
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/j.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/k.mp3 b/Resources/Private/Captcha/Voices/default/k.mp3
new file mode 100644 (file)
index 0000000..d93014e
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/k.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/l.mp3 b/Resources/Private/Captcha/Voices/default/l.mp3
new file mode 100644 (file)
index 0000000..249c637
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/l.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/m.mp3 b/Resources/Private/Captcha/Voices/default/m.mp3
new file mode 100644 (file)
index 0000000..5458032
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/m.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/n.mp3 b/Resources/Private/Captcha/Voices/default/n.mp3
new file mode 100644 (file)
index 0000000..0d528c4
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/n.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/o.mp3 b/Resources/Private/Captcha/Voices/default/o.mp3
new file mode 100644 (file)
index 0000000..726f19c
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/o.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/p.mp3 b/Resources/Private/Captcha/Voices/default/p.mp3
new file mode 100644 (file)
index 0000000..b7c9444
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/p.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/q.mp3 b/Resources/Private/Captcha/Voices/default/q.mp3
new file mode 100644 (file)
index 0000000..98a7dca
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/q.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/r.mp3 b/Resources/Private/Captcha/Voices/default/r.mp3
new file mode 100644 (file)
index 0000000..16bda45
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/r.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/s.mp3 b/Resources/Private/Captcha/Voices/default/s.mp3
new file mode 100644 (file)
index 0000000..f20bc39
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/s.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/t.mp3 b/Resources/Private/Captcha/Voices/default/t.mp3
new file mode 100644 (file)
index 0000000..443d388
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/t.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/u.mp3 b/Resources/Private/Captcha/Voices/default/u.mp3
new file mode 100644 (file)
index 0000000..abbbec6
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/u.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/v.mp3 b/Resources/Private/Captcha/Voices/default/v.mp3
new file mode 100644 (file)
index 0000000..3a3e93b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/v.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/w.mp3 b/Resources/Private/Captcha/Voices/default/w.mp3
new file mode 100644 (file)
index 0000000..eb06c69
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/w.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/x.mp3 b/Resources/Private/Captcha/Voices/default/x.mp3
new file mode 100644 (file)
index 0000000..2ffa53a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/x.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/y.mp3 b/Resources/Private/Captcha/Voices/default/y.mp3
new file mode 100644 (file)
index 0000000..a88857b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/y.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/default/z.mp3 b/Resources/Private/Captcha/Voices/default/z.mp3
new file mode 100644 (file)
index 0000000..c880909
Binary files /dev/null and b/Resources/Private/Captcha/Voices/default/z.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/0.mp3 b/Resources/Private/Captcha/Voices/es/0.mp3
new file mode 100644 (file)
index 0000000..21ba5bd
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/0.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/1.mp3 b/Resources/Private/Captcha/Voices/es/1.mp3
new file mode 100644 (file)
index 0000000..99a0ea0
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/1.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/2.mp3 b/Resources/Private/Captcha/Voices/es/2.mp3
new file mode 100644 (file)
index 0000000..85796cf
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/2.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/3.mp3 b/Resources/Private/Captcha/Voices/es/3.mp3
new file mode 100644 (file)
index 0000000..f95b7ae
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/3.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/4.mp3 b/Resources/Private/Captcha/Voices/es/4.mp3
new file mode 100644 (file)
index 0000000..24ef311
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/4.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/5.mp3 b/Resources/Private/Captcha/Voices/es/5.mp3
new file mode 100644 (file)
index 0000000..24c2e21
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/5.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/6.mp3 b/Resources/Private/Captcha/Voices/es/6.mp3
new file mode 100644 (file)
index 0000000..375da7b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/6.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/7.mp3 b/Resources/Private/Captcha/Voices/es/7.mp3
new file mode 100644 (file)
index 0000000..96dc208
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/7.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/8.mp3 b/Resources/Private/Captcha/Voices/es/8.mp3
new file mode 100644 (file)
index 0000000..de523b2
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/8.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/9.mp3 b/Resources/Private/Captcha/Voices/es/9.mp3
new file mode 100644 (file)
index 0000000..d43fa00
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/9.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/a.mp3 b/Resources/Private/Captcha/Voices/es/a.mp3
new file mode 100644 (file)
index 0000000..5dfe67d
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/a.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/b.mp3 b/Resources/Private/Captcha/Voices/es/b.mp3
new file mode 100644 (file)
index 0000000..d28de8f
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/b.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/c.mp3 b/Resources/Private/Captcha/Voices/es/c.mp3
new file mode 100644 (file)
index 0000000..1eaba5d
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/c.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/d.mp3 b/Resources/Private/Captcha/Voices/es/d.mp3
new file mode 100644 (file)
index 0000000..1884575
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/d.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/e.mp3 b/Resources/Private/Captcha/Voices/es/e.mp3
new file mode 100644 (file)
index 0000000..3ff8e8e
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/e.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/f.mp3 b/Resources/Private/Captcha/Voices/es/f.mp3
new file mode 100644 (file)
index 0000000..391bcb1
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/f.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/g.mp3 b/Resources/Private/Captcha/Voices/es/g.mp3
new file mode 100644 (file)
index 0000000..be96737
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/g.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/h.mp3 b/Resources/Private/Captcha/Voices/es/h.mp3
new file mode 100644 (file)
index 0000000..ddd9c6f
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/h.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/i.mp3 b/Resources/Private/Captcha/Voices/es/i.mp3
new file mode 100644 (file)
index 0000000..1132ea5
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/i.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/j.mp3 b/Resources/Private/Captcha/Voices/es/j.mp3
new file mode 100644 (file)
index 0000000..7e38ba0
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/j.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/k.mp3 b/Resources/Private/Captcha/Voices/es/k.mp3
new file mode 100644 (file)
index 0000000..a6ba5de
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/k.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/l.mp3 b/Resources/Private/Captcha/Voices/es/l.mp3
new file mode 100644 (file)
index 0000000..bfa3189
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/l.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/m.mp3 b/Resources/Private/Captcha/Voices/es/m.mp3
new file mode 100644 (file)
index 0000000..d089e5c
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/m.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/n.mp3 b/Resources/Private/Captcha/Voices/es/n.mp3
new file mode 100644 (file)
index 0000000..4b0a5ac
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/n.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/o.mp3 b/Resources/Private/Captcha/Voices/es/o.mp3
new file mode 100644 (file)
index 0000000..1d37ca6
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/o.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/p.mp3 b/Resources/Private/Captcha/Voices/es/p.mp3
new file mode 100644 (file)
index 0000000..0b92ded
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/p.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/q.mp3 b/Resources/Private/Captcha/Voices/es/q.mp3
new file mode 100644 (file)
index 0000000..118ce63
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/q.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/r.mp3 b/Resources/Private/Captcha/Voices/es/r.mp3
new file mode 100644 (file)
index 0000000..8b86f03
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/r.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/s.mp3 b/Resources/Private/Captcha/Voices/es/s.mp3
new file mode 100644 (file)
index 0000000..3c18603
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/s.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/t.mp3 b/Resources/Private/Captcha/Voices/es/t.mp3
new file mode 100644 (file)
index 0000000..23a07ea
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/t.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/u.mp3 b/Resources/Private/Captcha/Voices/es/u.mp3
new file mode 100644 (file)
index 0000000..f2bc71a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/u.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/v.mp3 b/Resources/Private/Captcha/Voices/es/v.mp3
new file mode 100644 (file)
index 0000000..1b56cc9
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/v.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/w.mp3 b/Resources/Private/Captcha/Voices/es/w.mp3
new file mode 100644 (file)
index 0000000..73cef3a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/w.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/x.mp3 b/Resources/Private/Captcha/Voices/es/x.mp3
new file mode 100644 (file)
index 0000000..64fc97d
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/x.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/y.mp3 b/Resources/Private/Captcha/Voices/es/y.mp3
new file mode 100644 (file)
index 0000000..1132ea5
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/y.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/z.mp3 b/Resources/Private/Captcha/Voices/es/z.mp3
new file mode 100644 (file)
index 0000000..0a5d705
Binary files /dev/null and b/Resources/Private/Captcha/Voices/es/z.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/es/á.mp3 b/Resources/Private/Captcha/Voices/es/á.mp3
new file mode 100644 (file)
index 0000000..3f18c0a
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/es/\303\241.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/es/é.mp3 b/Resources/Private/Captcha/Voices/es/é.mp3
new file mode 100644 (file)
index 0000000..128d4d4
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/es/\303\251.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/es/í.mp3 b/Resources/Private/Captcha/Voices/es/í.mp3
new file mode 100644 (file)
index 0000000..46bdc8b
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/es/\303\255.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/es/ñ.mp3 b/Resources/Private/Captcha/Voices/es/ñ.mp3
new file mode 100644 (file)
index 0000000..0efc904
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/es/\303\261.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/es/ó.mp3 b/Resources/Private/Captcha/Voices/es/ó.mp3
new file mode 100644 (file)
index 0000000..793f43b
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/es/\303\263.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/es/ú.mp3 b/Resources/Private/Captcha/Voices/es/ú.mp3
new file mode 100644 (file)
index 0000000..03fd0e6
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/es/\303\272.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/es/ü.mp3 b/Resources/Private/Captcha/Voices/es/ü.mp3
new file mode 100644 (file)
index 0000000..3896adf
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/es/\303\274.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/0.mp3 b/Resources/Private/Captcha/Voices/fr/0.mp3
new file mode 100644 (file)
index 0000000..8bb6799
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/0.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/1.mp3 b/Resources/Private/Captcha/Voices/fr/1.mp3
new file mode 100644 (file)
index 0000000..6427018
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/1.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/2.mp3 b/Resources/Private/Captcha/Voices/fr/2.mp3
new file mode 100644 (file)
index 0000000..9d1d813
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/2.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/3.mp3 b/Resources/Private/Captcha/Voices/fr/3.mp3
new file mode 100644 (file)
index 0000000..4bd1ce6
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/3.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/4.mp3 b/Resources/Private/Captcha/Voices/fr/4.mp3
new file mode 100644 (file)
index 0000000..dd645e9
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/4.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/5.mp3 b/Resources/Private/Captcha/Voices/fr/5.mp3
new file mode 100644 (file)
index 0000000..8e9f2dc
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/5.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/6.mp3 b/Resources/Private/Captcha/Voices/fr/6.mp3
new file mode 100644 (file)
index 0000000..66f17d7
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/6.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/7.mp3 b/Resources/Private/Captcha/Voices/fr/7.mp3
new file mode 100644 (file)
index 0000000..35efa7a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/7.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/8.mp3 b/Resources/Private/Captcha/Voices/fr/8.mp3
new file mode 100644 (file)
index 0000000..94dd163
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/8.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/9.mp3 b/Resources/Private/Captcha/Voices/fr/9.mp3
new file mode 100644 (file)
index 0000000..d98432d
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/9.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/a.mp3 b/Resources/Private/Captcha/Voices/fr/a.mp3
new file mode 100644 (file)
index 0000000..db64310
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/a.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/b.mp3 b/Resources/Private/Captcha/Voices/fr/b.mp3
new file mode 100644 (file)
index 0000000..1d7192b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/b.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/c.mp3 b/Resources/Private/Captcha/Voices/fr/c.mp3
new file mode 100644 (file)
index 0000000..de62a15
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/c.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/d.mp3 b/Resources/Private/Captcha/Voices/fr/d.mp3
new file mode 100644 (file)
index 0000000..9675731
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/d.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/e.mp3 b/Resources/Private/Captcha/Voices/fr/e.mp3
new file mode 100644 (file)
index 0000000..ae8b549
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/e.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/f.mp3 b/Resources/Private/Captcha/Voices/fr/f.mp3
new file mode 100644 (file)
index 0000000..c5f2883
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/f.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/g.mp3 b/Resources/Private/Captcha/Voices/fr/g.mp3
new file mode 100644 (file)
index 0000000..656eae0
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/g.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/h.mp3 b/Resources/Private/Captcha/Voices/fr/h.mp3
new file mode 100644 (file)
index 0000000..ed17838
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/h.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/i.mp3 b/Resources/Private/Captcha/Voices/fr/i.mp3
new file mode 100644 (file)
index 0000000..f9023fd
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/i.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/j.mp3 b/Resources/Private/Captcha/Voices/fr/j.mp3
new file mode 100644 (file)
index 0000000..7e40d3a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/j.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/k.mp3 b/Resources/Private/Captcha/Voices/fr/k.mp3
new file mode 100644 (file)
index 0000000..26eae85
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/k.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/l.mp3 b/Resources/Private/Captcha/Voices/fr/l.mp3
new file mode 100644 (file)
index 0000000..bedfddd
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/l.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/m.mp3 b/Resources/Private/Captcha/Voices/fr/m.mp3
new file mode 100644 (file)
index 0000000..e403a8e
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/m.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/n.mp3 b/Resources/Private/Captcha/Voices/fr/n.mp3
new file mode 100644 (file)
index 0000000..97907b6
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/n.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/o.mp3 b/Resources/Private/Captcha/Voices/fr/o.mp3
new file mode 100644 (file)
index 0000000..1b13f07
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/o.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/p.mp3 b/Resources/Private/Captcha/Voices/fr/p.mp3
new file mode 100644 (file)
index 0000000..f25c750
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/p.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/q.mp3 b/Resources/Private/Captcha/Voices/fr/q.mp3
new file mode 100644 (file)
index 0000000..7d2454e
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/q.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/r.mp3 b/Resources/Private/Captcha/Voices/fr/r.mp3
new file mode 100644 (file)
index 0000000..830feb3
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/r.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/s.mp3 b/Resources/Private/Captcha/Voices/fr/s.mp3
new file mode 100644 (file)
index 0000000..39570f3
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/s.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/t.mp3 b/Resources/Private/Captcha/Voices/fr/t.mp3
new file mode 100644 (file)
index 0000000..951ac60
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/t.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/u.mp3 b/Resources/Private/Captcha/Voices/fr/u.mp3
new file mode 100644 (file)
index 0000000..752394a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/u.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/v.mp3 b/Resources/Private/Captcha/Voices/fr/v.mp3
new file mode 100644 (file)
index 0000000..59391e1
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/v.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/w.mp3 b/Resources/Private/Captcha/Voices/fr/w.mp3
new file mode 100644 (file)
index 0000000..b171d73
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/w.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/x.mp3 b/Resources/Private/Captcha/Voices/fr/x.mp3
new file mode 100644 (file)
index 0000000..09db981
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/x.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/y.mp3 b/Resources/Private/Captcha/Voices/fr/y.mp3
new file mode 100644 (file)
index 0000000..37cda98
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/y.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/z.mp3 b/Resources/Private/Captcha/Voices/fr/z.mp3
new file mode 100644 (file)
index 0000000..ea5a5c6
Binary files /dev/null and b/Resources/Private/Captcha/Voices/fr/z.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/fr/à.mp3 b/Resources/Private/Captcha/Voices/fr/à.mp3
new file mode 100644 (file)
index 0000000..0a588a7
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\240.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/â.mp3 b/Resources/Private/Captcha/Voices/fr/â.mp3
new file mode 100644 (file)
index 0000000..6f81bd8
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\242.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/ä.mp3 b/Resources/Private/Captcha/Voices/fr/ä.mp3
new file mode 100644 (file)
index 0000000..db64310
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\244.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/ç.mp3 b/Resources/Private/Captcha/Voices/fr/ç.mp3
new file mode 100644 (file)
index 0000000..0ef84eb
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\247.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/è.mp3 b/Resources/Private/Captcha/Voices/fr/è.mp3
new file mode 100644 (file)
index 0000000..3ed82ea
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\250.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/é.mp3 b/Resources/Private/Captcha/Voices/fr/é.mp3
new file mode 100644 (file)
index 0000000..8784185
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\251.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/ê.mp3 b/Resources/Private/Captcha/Voices/fr/ê.mp3
new file mode 100644 (file)
index 0000000..f2c6e7a
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\252.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/ë.mp3 b/Resources/Private/Captcha/Voices/fr/ë.mp3
new file mode 100644 (file)
index 0000000..39b44c0
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\253.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/î.mp3 b/Resources/Private/Captcha/Voices/fr/î.mp3
new file mode 100644 (file)
index 0000000..edcb72c
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\256.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/ï.mp3 b/Resources/Private/Captcha/Voices/fr/ï.mp3
new file mode 100644 (file)
index 0000000..3fc6136
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\257.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/ô.mp3 b/Resources/Private/Captcha/Voices/fr/ô.mp3
new file mode 100644 (file)
index 0000000..c999000
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\264.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/ö.mp3 b/Resources/Private/Captcha/Voices/fr/ö.mp3
new file mode 100644 (file)
index 0000000..8549c3f
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\266.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/û.mp3 b/Resources/Private/Captcha/Voices/fr/û.mp3
new file mode 100644 (file)
index 0000000..82c0fdb
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\273.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/fr/ü.mp3 b/Resources/Private/Captcha/Voices/fr/ü.mp3
new file mode 100644 (file)
index 0000000..6aa24f0
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/fr/\303\274.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/it/0.mp3 b/Resources/Private/Captcha/Voices/it/0.mp3
new file mode 100644 (file)
index 0000000..bae2574
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/0.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/1.mp3 b/Resources/Private/Captcha/Voices/it/1.mp3
new file mode 100644 (file)
index 0000000..58d5b9b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/1.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/2.mp3 b/Resources/Private/Captcha/Voices/it/2.mp3
new file mode 100644 (file)
index 0000000..0f23ab3
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/2.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/3.mp3 b/Resources/Private/Captcha/Voices/it/3.mp3
new file mode 100644 (file)
index 0000000..578ec5d
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/3.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/4.mp3 b/Resources/Private/Captcha/Voices/it/4.mp3
new file mode 100644 (file)
index 0000000..2cb6e22
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/4.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/5.mp3 b/Resources/Private/Captcha/Voices/it/5.mp3
new file mode 100644 (file)
index 0000000..8c155de
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/5.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/6.mp3 b/Resources/Private/Captcha/Voices/it/6.mp3
new file mode 100644 (file)
index 0000000..f515e1c
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/6.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/7.mp3 b/Resources/Private/Captcha/Voices/it/7.mp3
new file mode 100644 (file)
index 0000000..1032427
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/7.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/8.mp3 b/Resources/Private/Captcha/Voices/it/8.mp3
new file mode 100644 (file)
index 0000000..623e9ff
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/8.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/9.mp3 b/Resources/Private/Captcha/Voices/it/9.mp3
new file mode 100644 (file)
index 0000000..b24a0c6
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/9.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/a.mp3 b/Resources/Private/Captcha/Voices/it/a.mp3
new file mode 100644 (file)
index 0000000..bc85057
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/a.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/b.mp3 b/Resources/Private/Captcha/Voices/it/b.mp3
new file mode 100644 (file)
index 0000000..aaf3d35
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/b.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/c.mp3 b/Resources/Private/Captcha/Voices/it/c.mp3
new file mode 100644 (file)
index 0000000..87933b5
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/c.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/d.mp3 b/Resources/Private/Captcha/Voices/it/d.mp3
new file mode 100644 (file)
index 0000000..390a0ff
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/d.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/e.mp3 b/Resources/Private/Captcha/Voices/it/e.mp3
new file mode 100644 (file)
index 0000000..873e847
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/e.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/f.mp3 b/Resources/Private/Captcha/Voices/it/f.mp3
new file mode 100644 (file)
index 0000000..e3c58ef
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/f.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/g.mp3 b/Resources/Private/Captcha/Voices/it/g.mp3
new file mode 100644 (file)
index 0000000..ad15542
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/g.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/h.mp3 b/Resources/Private/Captcha/Voices/it/h.mp3
new file mode 100644 (file)
index 0000000..905c110
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/h.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/i.mp3 b/Resources/Private/Captcha/Voices/it/i.mp3
new file mode 100644 (file)
index 0000000..fcdb965
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/i.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/j.mp3 b/Resources/Private/Captcha/Voices/it/j.mp3
new file mode 100644 (file)
index 0000000..9ed7866
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/j.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/k.mp3 b/Resources/Private/Captcha/Voices/it/k.mp3
new file mode 100644 (file)
index 0000000..3f19c3f
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/k.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/l.mp3 b/Resources/Private/Captcha/Voices/it/l.mp3
new file mode 100644 (file)
index 0000000..029ad60
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/l.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/m.mp3 b/Resources/Private/Captcha/Voices/it/m.mp3
new file mode 100644 (file)
index 0000000..9e3f986
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/m.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/n.mp3 b/Resources/Private/Captcha/Voices/it/n.mp3
new file mode 100644 (file)
index 0000000..5d448fb
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/n.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/o.mp3 b/Resources/Private/Captcha/Voices/it/o.mp3
new file mode 100644 (file)
index 0000000..e6276c7
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/o.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/p.mp3 b/Resources/Private/Captcha/Voices/it/p.mp3
new file mode 100644 (file)
index 0000000..740c463
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/p.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/q.mp3 b/Resources/Private/Captcha/Voices/it/q.mp3
new file mode 100644 (file)
index 0000000..b44b47f
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/q.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/r.mp3 b/Resources/Private/Captcha/Voices/it/r.mp3
new file mode 100644 (file)
index 0000000..1e043f2
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/r.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/s.mp3 b/Resources/Private/Captcha/Voices/it/s.mp3
new file mode 100644 (file)
index 0000000..f0fdcf1
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/s.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/t.mp3 b/Resources/Private/Captcha/Voices/it/t.mp3
new file mode 100644 (file)
index 0000000..53e649b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/t.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/u.mp3 b/Resources/Private/Captcha/Voices/it/u.mp3
new file mode 100644 (file)
index 0000000..5bdbb95
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/u.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/v.mp3 b/Resources/Private/Captcha/Voices/it/v.mp3
new file mode 100644 (file)
index 0000000..19af2d0
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/v.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/w.mp3 b/Resources/Private/Captcha/Voices/it/w.mp3
new file mode 100644 (file)
index 0000000..b2fbafc
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/w.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/x.mp3 b/Resources/Private/Captcha/Voices/it/x.mp3
new file mode 100644 (file)
index 0000000..932cf45
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/x.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/y.mp3 b/Resources/Private/Captcha/Voices/it/y.mp3
new file mode 100644 (file)
index 0000000..d3ab579
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/y.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/z.mp3 b/Resources/Private/Captcha/Voices/it/z.mp3
new file mode 100644 (file)
index 0000000..1727a86
Binary files /dev/null and b/Resources/Private/Captcha/Voices/it/z.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/it/à.mp3 b/Resources/Private/Captcha/Voices/it/à.mp3
new file mode 100644 (file)
index 0000000..6218a1c
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/it/\303\240.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/it/è.mp3 b/Resources/Private/Captcha/Voices/it/è.mp3
new file mode 100644 (file)
index 0000000..b706a95
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/it/\303\250.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/it/é.mp3 b/Resources/Private/Captcha/Voices/it/é.mp3
new file mode 100644 (file)
index 0000000..34de317
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/it/\303\251.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/it/ò.mp3 b/Resources/Private/Captcha/Voices/it/ò.mp3
new file mode 100644 (file)
index 0000000..176c2da
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/it/\303\262.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/0.mp3 b/Resources/Private/Captcha/Voices/pt/0.mp3
new file mode 100644 (file)
index 0000000..2e622c3
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/0.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/1.mp3 b/Resources/Private/Captcha/Voices/pt/1.mp3
new file mode 100644 (file)
index 0000000..6cc3d16
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/1.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/2.mp3 b/Resources/Private/Captcha/Voices/pt/2.mp3
new file mode 100644 (file)
index 0000000..88a147e
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/2.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/4.mp3 b/Resources/Private/Captcha/Voices/pt/4.mp3
new file mode 100644 (file)
index 0000000..411c28d
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/4.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/5.mp3 b/Resources/Private/Captcha/Voices/pt/5.mp3
new file mode 100644 (file)
index 0000000..aaa9fb3
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/5.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/6.mp3 b/Resources/Private/Captcha/Voices/pt/6.mp3
new file mode 100644 (file)
index 0000000..dcba155
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/6.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/7.mp3 b/Resources/Private/Captcha/Voices/pt/7.mp3
new file mode 100644 (file)
index 0000000..ae89cfc
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/7.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/8.mp3 b/Resources/Private/Captcha/Voices/pt/8.mp3
new file mode 100644 (file)
index 0000000..20eb7db
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/8.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/9.mp3 b/Resources/Private/Captcha/Voices/pt/9.mp3
new file mode 100644 (file)
index 0000000..d073f88
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/9.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/a.mp3 b/Resources/Private/Captcha/Voices/pt/a.mp3
new file mode 100644 (file)
index 0000000..972eb9d
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/a.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/b.mp3 b/Resources/Private/Captcha/Voices/pt/b.mp3
new file mode 100644 (file)
index 0000000..8e5bd6e
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/b.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/c.mp3 b/Resources/Private/Captcha/Voices/pt/c.mp3
new file mode 100644 (file)
index 0000000..a15f711
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/c.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/d.mp3 b/Resources/Private/Captcha/Voices/pt/d.mp3
new file mode 100644 (file)
index 0000000..3502abd
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/d.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/e.mp3 b/Resources/Private/Captcha/Voices/pt/e.mp3
new file mode 100644 (file)
index 0000000..937d76a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/e.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/f.mp3 b/Resources/Private/Captcha/Voices/pt/f.mp3
new file mode 100644 (file)
index 0000000..43a8b8b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/f.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/g.mp3 b/Resources/Private/Captcha/Voices/pt/g.mp3
new file mode 100644 (file)
index 0000000..e7103dd
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/g.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/h.mp3 b/Resources/Private/Captcha/Voices/pt/h.mp3
new file mode 100644 (file)
index 0000000..0e36cd6
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/h.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/i.mp3 b/Resources/Private/Captcha/Voices/pt/i.mp3
new file mode 100644 (file)
index 0000000..266294b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/i.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/j.mp3 b/Resources/Private/Captcha/Voices/pt/j.mp3
new file mode 100644 (file)
index 0000000..bab3bff
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/j.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/k.mp3 b/Resources/Private/Captcha/Voices/pt/k.mp3
new file mode 100644 (file)
index 0000000..d8efa46
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/k.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/l.mp3 b/Resources/Private/Captcha/Voices/pt/l.mp3
new file mode 100644 (file)
index 0000000..6d4fc5b
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/l.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/m.mp3 b/Resources/Private/Captcha/Voices/pt/m.mp3
new file mode 100644 (file)
index 0000000..c8e9abc
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/m.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/n.mp3 b/Resources/Private/Captcha/Voices/pt/n.mp3
new file mode 100644 (file)
index 0000000..5314bbf
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/n.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/o.mp3 b/Resources/Private/Captcha/Voices/pt/o.mp3
new file mode 100644 (file)
index 0000000..a5d8bac
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/o.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/p.mp3 b/Resources/Private/Captcha/Voices/pt/p.mp3
new file mode 100644 (file)
index 0000000..b448cd7
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/p.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/q.mp3 b/Resources/Private/Captcha/Voices/pt/q.mp3
new file mode 100644 (file)
index 0000000..908b297
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/q.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/r.mp3 b/Resources/Private/Captcha/Voices/pt/r.mp3
new file mode 100644 (file)
index 0000000..35ff5ea
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/r.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/s.mp3 b/Resources/Private/Captcha/Voices/pt/s.mp3
new file mode 100644 (file)
index 0000000..6d1b7e4
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/s.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/t.mp3 b/Resources/Private/Captcha/Voices/pt/t.mp3
new file mode 100644 (file)
index 0000000..a88bc5a
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/t.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/u.mp3 b/Resources/Private/Captcha/Voices/pt/u.mp3
new file mode 100644 (file)
index 0000000..cd44000
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/u.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/v.mp3 b/Resources/Private/Captcha/Voices/pt/v.mp3
new file mode 100644 (file)
index 0000000..c278df9
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/v.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/w.mp3 b/Resources/Private/Captcha/Voices/pt/w.mp3
new file mode 100644 (file)
index 0000000..f4573b1
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/w.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/x.mp3 b/Resources/Private/Captcha/Voices/pt/x.mp3
new file mode 100644 (file)
index 0000000..0b64e59
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/x.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/y.mp3 b/Resources/Private/Captcha/Voices/pt/y.mp3
new file mode 100644 (file)
index 0000000..7a52724
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/y.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/z.mp3 b/Resources/Private/Captcha/Voices/pt/z.mp3
new file mode 100644 (file)
index 0000000..483f7a4
Binary files /dev/null and b/Resources/Private/Captcha/Voices/pt/z.mp3 differ
diff --git a/Resources/Private/Captcha/Voices/pt/à.mp3 b/Resources/Private/Captcha/Voices/pt/à.mp3
new file mode 100644 (file)
index 0000000..972eb9d
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\240.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/á.mp3 b/Resources/Private/Captcha/Voices/pt/á.mp3
new file mode 100644 (file)
index 0000000..ebce7e9
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\241.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/ã.mp3 b/Resources/Private/Captcha/Voices/pt/ã.mp3
new file mode 100644 (file)
index 0000000..852521b
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\243.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/ç.mp3 b/Resources/Private/Captcha/Voices/pt/ç.mp3
new file mode 100644 (file)
index 0000000..49b7d4b
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\247.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/é.mp3 b/Resources/Private/Captcha/Voices/pt/é.mp3
new file mode 100644 (file)
index 0000000..937d76a
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\251.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/ê.mp3 b/Resources/Private/Captcha/Voices/pt/ê.mp3
new file mode 100644 (file)
index 0000000..b0f0b68
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\252.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/í.mp3 b/Resources/Private/Captcha/Voices/pt/í.mp3
new file mode 100644 (file)
index 0000000..ca81212
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\255.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/ó.mp3 b/Resources/Private/Captcha/Voices/pt/ó.mp3
new file mode 100644 (file)
index 0000000..e19dec7
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\263.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/õ.mp3 b/Resources/Private/Captcha/Voices/pt/õ.mp3
new file mode 100644 (file)
index 0000000..682c8fb
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\265.mp3" differ
diff --git a/Resources/Private/Captcha/Voices/pt/ú.mp3 b/Resources/Private/Captcha/Voices/pt/ú.mp3
new file mode 100644 (file)
index 0000000..a69df08
Binary files /dev/null and "b/Resources/Private/Captcha/Voices/pt/\303\272.mp3" differ
index 5fe5b5c..51328ed 100644 (file)
                 * Plays the audio captcha
                 *
                 * @param string id: identifier used to uniquely identify the wav file
-                * @param string wavURL: url of the wave file generating script
+                * @param string wavUrl: url of the wave file generating script
                 * @param string noPlayMessage: message to be displayed if the audio file cannot be rendered
                 * @return void
                 *
                 * Note: In order for this to work with IE8, [SYS][cookieDomain] must be set using the TYPO3 Install Tool
                 */
-               playCaptcha: function (id, wavURL, noPlayMessage) {
+               playCaptcha: function (id, wavUrl, noPlayMessage) {
                        if (document.getElementById) {
                                var theAudio = document.getElementById('tx_srfreecap_captcha_playAudio_' + id);
-                               var url = wavURL + '&set=' + Math.round(Math.random()*100000);
+                               var url = wavUrl + '&set=' + Math.round(Math.random()*100000);
                                while (theAudio.firstChild) {
                                        theAudio.removeChild(theAudio.firstChild);
                                }
                                var audioElement = document.createElement('audio');
-                               if (audioElement.canPlayType && (audioElement.canPlayType('audio/x-wav') === 'maybe' || audioElement.canPlayType('audio/x-wav') === 'probably') && !window.opera) {
-                                       audioElement.setAttribute('id', 'tx_srfreecap_captcha_playAudio_audio' + id);
+                               if (audioElement.canPlayType) {
+                                       // HTML 5 audio
+                                       if (audioElement.canPlayType('audio/mpeg') === 'maybe' || audioElement.canPlayType('audio/mpeg') === 'probably') {
+                                               url = url.replace('wav', 'mp3');
+                                       }
                                        audioElement.setAttribute('src', url);
+                                       audioElement.setAttribute('id', 'tx_srfreecap_captcha_playAudio_audio' + id);
                                        theAudio.appendChild(audioElement);
                                        audioElement.load();
                                        audioElement.play();
                                } else {
-                                       // In IE, use the default player for audio/x-wav, probably Windows Media Player
+                                       url = url.replace('wav', 'mp3');
+                                       // In IE, use the default player for audio/mpeg, probably Windows Media Player
                                        var objectElement = document.createElement('object');
                                        objectElement.setAttribute('id', 'tx_srfreecap_captcha_playAudio_object' + id);
-                                       if (document.all && !document.querySelector && !document.addEventListener) {
-                                               // IE7 only
-                                               objectElement.setAttribute('type', 'audio/x-wav');
-                                               objectElement.setAttribute('filename', url);
-                                       } else {
-                                               objectElement.setAttribute('data', url);
-                                               if (document.all && !document.addEventListener) {
-                                                       // IE8 only
-                                                       objectElement.setAttribute('type', 'audio/x-wav');
-                                               }
-                                       }
+                                       objectElement.setAttribute('data', url);
+                                       // IE 7
+                                       objectElement.setAttribute('filename', url);
                                        theAudio.appendChild(objectElement);
                                        objectElement.style.height = 0;
                                        objectElement.style.width = 0;
                                                }
                                        }
                                        $altHtml = '<a style="display:inline-block; margin-left: 5px; width: 200px;" href="' + url + '">' + (noPlayMessage ? noPlayMessage : 'Sorry, we cannot play the word of the image.') + '</a>';
-                                       if (document.addEventListener) {
-                                               // In IE9 and Opera
-                                               objectElement.innerHTML = $altHtml;
-                                       } else {
-                                               objectElement.altHtml = $altHtml;
-                                       }
+                                       objectElement.altHtml = $altHtml;
                                }
                        } else {
                                alert(noPlayMessage ? noPlayMessage : 'Sorry, we cannot play the word of the image.');
index 38ed51e..b358407 100644 (file)
Binary files a/doc/manual.sxw and b/doc/manual.sxw differ