From c8a24c6fa81d8478721e27e5011ae2994f03dbd5 Mon Sep 17 00:00:00 2001 From: Koldo Picaza <1093654+kpicaza@users.noreply.github.com> Date: Fri, 28 Jan 2022 17:28:34 +0100 Subject: [PATCH] Remove unused & deprecated google translate feature --- composer.json | 15 +- .../config/configuration_files.config.php | 3 + instances/example/config/locale.config.php | 6 + instances/example/locale/messages_en_US.php | 3 + instances/example/locale/messages_es_ES.php | 0 instances/example/locale/urlparams_en_US.php | 0 instances/example/locale/urlparams_es_ES.php | 0 src/Sifo/Bootstrap.php | 11 +- src/Sifo/I18N.php | 37 - src/googleTranslate-1.7/LICENSE | 339 -------- .../GoogleTranslateWrapper.html | 751 ------------------ .../GoogleTranslateWrapper/_example.php.html | 171 ---- .../_googleTranslate.class.php.html | 169 ---- ...e_GoogleTranslateWrapper__example.php.html | 39 - ...ateWrapper__googleTranslate.class.php.html | 444 ----------- src/googleTranslate-1.7/docs/blank.html | 13 - .../classtrees_GoogleTranslateWrapper.html | 24 - .../docs/elementindex.html | 214 ----- .../elementindex_GoogleTranslateWrapper.html | 212 ----- src/googleTranslate-1.7/docs/errors.html | 20 - src/googleTranslate-1.7/docs/index.html | 24 - .../docs/li_GoogleTranslateWrapper.html | 141 ---- .../docs/media/images/Class.gif | Bin 1078 -> 0 bytes .../docs/media/images/Constant.gif | Bin 1041 -> 0 bytes .../docs/media/images/Constants.gif | Bin 1068 -> 0 bytes .../docs/media/images/Constructor.gif | Bin 1044 -> 0 bytes .../docs/media/images/Destructor.gif | Bin 1043 -> 0 bytes .../docs/media/images/Disk.gif | Bin 941 -> 0 bytes .../docs/media/images/FolderClosed.gif | Bin 963 -> 0 bytes .../docs/media/images/FolderOpened.gif | Bin 957 -> 0 bytes .../docs/media/images/Functions.gif | Bin 1064 -> 0 bytes .../docs/media/images/GhostClass.gif | Bin 1071 -> 0 bytes .../docs/media/images/I.png | Bin 148 -> 0 bytes .../docs/media/images/L.png | Bin 153 -> 0 bytes .../docs/media/images/Lminus.png | Bin 219 -> 0 bytes .../docs/media/images/Lplus.png | Bin 224 -> 0 bytes .../docs/media/images/PrivateDataMember.gif | Bin 967 -> 0 bytes .../docs/media/images/PrivateMethod.gif | Bin 1062 -> 0 bytes .../docs/media/images/PrivateProperty.gif | Bin 1063 -> 0 bytes .../docs/media/images/ProtectedDataMember.gif | Bin 1064 -> 0 bytes .../docs/media/images/ProtectedMethod.gif | Bin 1080 -> 0 bytes .../docs/media/images/ProtectedProperty.gif | Bin 1068 -> 0 bytes .../docs/media/images/PublicDataMember.gif | Bin 954 -> 0 bytes .../docs/media/images/PublicMethod.gif | Bin 1038 -> 0 bytes .../docs/media/images/PublicProperty.gif | Bin 1053 -> 0 bytes .../docs/media/images/T.png | Bin 152 -> 0 bytes .../docs/media/images/Thumbs.db | Bin 35328 -> 0 bytes .../docs/media/images/Tminus.png | Bin 207 -> 0 bytes .../docs/media/images/Tplus.png | Bin 222 -> 0 bytes .../docs/media/images/Types.gif | Bin 1049 -> 0 bytes .../docs/media/images/Variable.gif | Bin 1051 -> 0 bytes .../docs/media/images/Vars.gif | Bin 1064 -> 0 bytes .../docs/media/images/blank.png | Bin 144 -> 0 bytes .../docs/media/images/classFolder.gif | Bin 1069 -> 0 bytes .../docs/media/images/error.gif | Bin 122 -> 0 bytes .../docs/media/images/file.png | Bin 462 -> 0 bytes .../docs/media/images/foldericon.png | Bin 229 -> 0 bytes .../docs/media/images/minus.gif | Bin 64 -> 0 bytes .../docs/media/images/msgError.gif | Bin 997 -> 0 bytes .../docs/media/images/msgFatalError.gif | Bin 1040 -> 0 bytes .../docs/media/images/msgHint.gif | Bin 989 -> 0 bytes .../docs/media/images/msgInformation.gif | Bin 963 -> 0 bytes .../docs/media/images/msgWarning.gif | Bin 1043 -> 0 bytes .../docs/media/images/openfoldericon.png | Bin 232 -> 0 bytes .../docs/media/images/plus.gif | Bin 67 -> 0 bytes .../docs/media/images/spacer.gif | Bin 55 -> 0 bytes src/googleTranslate-1.7/docs/media/layout.css | 81 -- .../docs/media/lib/classTree.js | 454 ----------- .../docs/media/lib/tab.webfx.css | 86 -- .../docs/media/lib/tabpane.js | 308 ------- src/googleTranslate-1.7/docs/media/lib/ua.js | 111 --- src/googleTranslate-1.7/docs/media/print.css | 25 - src/googleTranslate-1.7/docs/media/style.css | 236 ------ .../docs/media/stylesheet.css | 230 ------ src/googleTranslate-1.7/docs/packages.html | 15 - src/googleTranslate-1.7/example.php | 22 - .../googleTranslate.class.php | 424 ---------- test/Sifo/I18NTest.php | 29 + 78 files changed, 59 insertions(+), 4598 deletions(-) create mode 100644 instances/example/config/configuration_files.config.php create mode 100644 instances/example/config/locale.config.php create mode 100644 instances/example/locale/messages_en_US.php create mode 100644 instances/example/locale/messages_es_ES.php create mode 100644 instances/example/locale/urlparams_en_US.php create mode 100644 instances/example/locale/urlparams_es_ES.php delete mode 100644 src/googleTranslate-1.7/LICENSE delete mode 100644 src/googleTranslate-1.7/docs/GoogleTranslateWrapper/GoogleTranslateWrapper.html delete mode 100644 src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_example.php.html delete mode 100644 src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_googleTranslate.class.php.html delete mode 100644 src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__example.php.html delete mode 100644 src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__googleTranslate.class.php.html delete mode 100644 src/googleTranslate-1.7/docs/blank.html delete mode 100644 src/googleTranslate-1.7/docs/classtrees_GoogleTranslateWrapper.html delete mode 100644 src/googleTranslate-1.7/docs/elementindex.html delete mode 100644 src/googleTranslate-1.7/docs/elementindex_GoogleTranslateWrapper.html delete mode 100644 src/googleTranslate-1.7/docs/errors.html delete mode 100644 src/googleTranslate-1.7/docs/index.html delete mode 100644 src/googleTranslate-1.7/docs/li_GoogleTranslateWrapper.html delete mode 100644 src/googleTranslate-1.7/docs/media/images/Class.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/Constant.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/Constants.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/Constructor.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/Destructor.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/Disk.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/FolderClosed.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/FolderOpened.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/Functions.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/GhostClass.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/I.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/L.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/Lminus.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/Lplus.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/PrivateDataMember.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/PrivateMethod.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/PrivateProperty.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/ProtectedDataMember.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/ProtectedMethod.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/ProtectedProperty.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/PublicDataMember.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/PublicMethod.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/PublicProperty.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/T.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/Thumbs.db delete mode 100644 src/googleTranslate-1.7/docs/media/images/Tminus.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/Tplus.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/Types.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/Variable.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/Vars.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/blank.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/classFolder.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/error.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/file.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/foldericon.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/minus.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/msgError.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/msgFatalError.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/msgHint.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/msgInformation.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/msgWarning.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/openfoldericon.png delete mode 100644 src/googleTranslate-1.7/docs/media/images/plus.gif delete mode 100644 src/googleTranslate-1.7/docs/media/images/spacer.gif delete mode 100644 src/googleTranslate-1.7/docs/media/layout.css delete mode 100644 src/googleTranslate-1.7/docs/media/lib/classTree.js delete mode 100644 src/googleTranslate-1.7/docs/media/lib/tab.webfx.css delete mode 100644 src/googleTranslate-1.7/docs/media/lib/tabpane.js delete mode 100644 src/googleTranslate-1.7/docs/media/lib/ua.js delete mode 100644 src/googleTranslate-1.7/docs/media/print.css delete mode 100644 src/googleTranslate-1.7/docs/media/style.css delete mode 100644 src/googleTranslate-1.7/docs/media/stylesheet.css delete mode 100644 src/googleTranslate-1.7/docs/packages.html delete mode 100644 src/googleTranslate-1.7/example.php delete mode 100644 src/googleTranslate-1.7/googleTranslate.class.php create mode 100644 test/Sifo/I18NTest.php diff --git a/composer.json b/composer.json index f524c894..12a05a93 100644 --- a/composer.json +++ b/composer.json @@ -18,6 +18,12 @@ "support": { "issues": "https://github.com/sifophp/SIFO/issues" }, + "repositories": [ + { + "type": "vcs", + "url": "https://github.com/sifophp/sifoweb.git" + } + ], "require": { "php": ">=7.2", "adodb/adodb-php": "^5.21", @@ -25,7 +31,6 @@ "neutron/sphinxsearch-api": "^2.0", "phpmailer/phpmailer": "^6.0", "psr/container": "^1.0", - "sifophp/sifo-common-instance": "^2.14", "smarty/smarty": "^3.1", "symfony/dotenv": "^3.3.1|^4.3.1|^5.0.1", "symfony/yaml": "^3.2|^4.3.1|^5.0.1", @@ -34,9 +39,12 @@ "twig/twig": "^2.0" }, "require-dev": { + "adlawson/vfs": "^0.12.1", "phpcompatibility/php-compatibility": "^9.3", "phpunit/phpunit": "^5.0", - "symfony/var-dumper": "^3.2" + "sifophp/sifo-common-instance": "*", + "sifophp/sifoweb": "@dev", + "symfony/var-dumper": "^5.4" }, "scripts": { "cs-check": "phpcs src --colors", @@ -47,6 +55,9 @@ "sort-packages": true }, "autoload": { + "psr-4": { + "Sifo\\": "src/Sifo/" + }, "classmap" : [ "src/Sifo" ] diff --git a/instances/example/config/configuration_files.config.php b/instances/example/config/configuration_files.config.php new file mode 100644 index 00000000..1675e518 --- /dev/null +++ b/instances/example/config/configuration_files.config.php @@ -0,0 +1,3 @@ +{$d->getMessage()}"; die; } - catch ( ControllerException $e ) + catch (ControllerException $e ) { self::_dispatchErrorController( $e->getPrevious() ); } - catch ( \Exception $e ) + catch ( Exception $e ) { self::_dispatchErrorController( $e ); } diff --git a/src/Sifo/I18N.php b/src/Sifo/I18N.php index 74a60567..f6943241 100644 --- a/src/Sifo/I18N.php +++ b/src/Sifo/I18N.php @@ -234,41 +234,4 @@ static public function getLocale() return self::$locale; } - - /** - * Identify the used language. - * - * @param string $text The text to identify. - * @return string Language Iso. - */ - static public function identifyUsedLanguage( $text ) - { - if ( !( isset( self::$google_translate_api_instance ) ) ) - { - include_once ROOT_PATH . '/vendor/sifophp/sifo/src/' . Config::getInstance()->getLibrary( 'googleTranslate' ) . '/googleTranslate.class.php'; - self::$google_translate_api_instance = new \GoogleTranslateWrapper(); - } - $result = self::$google_translate_api_instance->detectLanguage( $text ); - - return $result['language']; - } - - /** - * - * @param string $text Texto to translate - * @param string $dest_iso Language destination - * @return string Translated text. - */ - static public function translateTo( $text, $dest_iso ) - { - if ( !( isset( self::$google_translate_api_instance ) ) ) - { - include_once ROOT_PATH . '/vendor/sifophp/sifo/src/' . Config::getInstance()->getLibrary( 'googleTranslate' ) . '/googleTranslate.class.php'; - self::$google_translate_api_instance = new \GoogleTranslateWrapper(); - } - self::$google_translate_api_instance->translatedText = ''; - - return self::$google_translate_api_instance->translate( $text, $dest_iso ); - } - } diff --git a/src/googleTranslate-1.7/LICENSE b/src/googleTranslate-1.7/LICENSE deleted file mode 100644 index d511905c..00000000 --- a/src/googleTranslate-1.7/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program 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. - - This program 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. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/GoogleTranslateWrapper.html b/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/GoogleTranslateWrapper.html deleted file mode 100644 index 08d89675..00000000 --- a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/GoogleTranslateWrapper.html +++ /dev/null @@ -1,751 +0,0 @@ - - - - - Docs For Class GoogleTranslateWrapper - - - - - - - - -

- Class GoogleTranslateWrapper -

(line 39) -
- - -
-

Description

-
-
-

- Located in File: /googleTranslate.class.php
-

- -
GoogleTranslateWrapper Main Class
- -

-
- -
- -

Class Variables

- -Summary:
-
- string - $_apiKey -
-
- array - $_chunks -
-
- string - $_currentChunk -
- -
- string - $_fromLang -
-
- string - $_googleDetectUrl -
-
- string - $_googleTranslateUrl -
-
- string - $_ip -
-
- string - $_postFields -
-
- string - $_serviceError -
-
- string - $_siteUrl -
-
- integer - $_stringLimit -
-
- boolean - $_success -
-
- string - $_text -
-
- string - $_toLang -
-
- integer - $_totalChunks -
-
- string - $_translatedText -
-
- string - $_version -
-
- -
-

- $_apiKey = '' (line 87) -

-

Data type : string

- -
Google API key
-
    -
  • access: - private
  • -
-
- -
-

- $_chunks = 0 (line 130) -

-

Data type : array

- -
Chunk array
-
    -
  • access: - private
  • -
-
- -
-

- $_currentChunk = 0 (line 136) -

-

Data type : string

- -
Current data chunk
-
    -
  • access: - private
  • -
-
- -
-

- $_detectedSourceLanguage = "" (line 148) -

-

Data type : string

- -
Detected source language
-
    -
  • access: - private
  • -
-
- -
-

- $_fromLang = '' (line 57) -

-

Data type : string

- -
Language to translate from
-
    -
  • access: - private
  • -
-
- -
-

- $_googleDetectUrl = 'http://ajax.googleapis.com/ajax/services/language/detect' (line 51) -

-

Data type : string

- -
URL of Google language detection
-
    -
  • access: - private
  • -
-
- -
-

- $_googleTranslateUrl = 'http://ajax.googleapis.com/ajax/services/language/translate' (line 45) -

-

Data type : string

- -
URL of Google translate
-
    -
  • access: - private
  • -
-
- -
-

- $_ip = '' (line 93) -

-

Data type : string

- -
Host IP address
-
    -
  • access: - private
  • -
-
- -
-

- $_postFields (line 99) -

-

Data type : string

- -
POST fields
-
    -
  • access: - private
  • -
-
- -
-

- $_serviceError = "" (line 111) -

-

Data type : string

- -
Service Error
-
    -
  • access: - private
  • -
-
- -
-

- $_siteUrl = '' (line 81) -

-

Data type : string

- -
Site url using the code
-
    -
  • access: - private
  • -
-
- -
-

- $_stringLimit = 5000 (line 124) -

-

Data type : integer

- -
Translation character limit.
-

Currently the limit set by Google is 5000

-
    -
  • access: - private
  • -
-
- -
-

- $_success = false (line 117) -

-

Data type : boolean

- -
Translation success
-
    -
  • access: - private
  • -
-
- -
-

- $_text = '' (line 75) -

-

Data type : string

- -
Text to translate
-
    -
  • access: - private
  • -
-
- -
-

- $_toLang = '' (line 63) -

-

Data type : string

- -
Language to translate to
-
    -
  • access: - private
  • -
-
- -
-

- $_totalChunks = 0 (line 142) -

-

Data type : integer

- -
Total chunks
-
    -
  • access: - private
  • -
-
- -
-

- $_translatedText (line 105) -

-

Data type : string

- -
Translated Text
-
    -
  • access: - private
  • -
-
- -
-

- $_version = '1.0' (line 69) -

-

Data type : string

- -
API version
-
    -
  • access: - private
  • -
-
- -
-
- -

Class Constants

- -Summary:
-
- DETECT -
- -
- -
-

- DETECT = 1 (line 150) -

- -
    -
-
- -
-

- TRANSLATE = 2 (line 151) -

- -
    -
-
- -
-
-

Method Detail

- -Summary:
-
-
- boolean - detectLanguage - (string $text) -
-
- String - getDetectedSource - () -
-
- String - getLastError - () -
-
- boolean - isSuccess - () -
-
- boolean - selfTest - () -
-
- void - setCredentials - (string $apiKey,  $ip) -
-
- void - setReferrer - (string $siteUrl) -
-
- boolean - translate - ([string $text = ''], string $to, [string $from = '']) -
-
- void - _composeUrl - ( $type) -
-
- string - _remoteQuery - (string $query) -
-
- string - _remoteQueryDetect - (string $query) -
-
-
- - - - -

- Method detectLanguage (line 383) -

-

boolean detectLanguage( -string -$text)

- - -
Detect the language of the given text
-

Parameters

-
    -
  • string $text: text language to detect
  • -
- -

Info

-
    -
  • return - | string
  • -
  • access - public
  • -
-
- -

- Method getDetectedSource (line 276) -

-

String getDetectedSource( -)

- - -
Get the detected source language, if the source is not provided during query
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method getLastError (line 264) -

-

String getLastError( -)

- - -
Get the last generated service error
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method isSuccess (line 254) -

-

boolean isSuccess( -)

- - -
Check if the last translation was a success
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method selfTest (line 236) -

-

boolean selfTest( -)

- - -
Self test the class
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method setCredentials (line 287) -

-

void setCredentials( -string -$apiKey, -$ip)

- - -
Set credentials (optional) when accessing Google translation services
-

Parameters

-
    -
  • string $apiKey: your google api key
  • -
  • $ip:
  • -
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method setReferrer (line 299) -

-

void setReferrer( -string -$siteUrl)

- - -
Set Referrer header
-

Parameters

-
    -
  • string $siteUrl: your website url
  • -
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method translate (line 312) -

-

boolean translate( -[string -$text = ''], string -$to, [string -$from = ''])

- - -
Translate the given text
-

Parameters

-
    -
  • string $text: text to translate
  • -
  • string $to: language to translate to
  • -
  • string $from: optional language to translate from
  • -
- -

Info

-
    -
  • return - | string
  • -
  • access - public
  • -
-
- -

- Method _composeUrl (line 158) -

-

void _composeUrl( - -$type)

- - -
Build a POST url to query Google
-

Parameters

-
    -
  • $type:
  • -
- -

Info

-
    -
  • access - private
  • -
-
- -

- Method _remoteQuery (line 185) -

-

string _remoteQuery( -string -$query)

- - -
Process the built query using cURL and POST
-

Parameters

-
    -
  • string $query: POST fields
  • -
- -

Info

-
    -
  • return - response
  • -
  • access - private
  • -
-
- -

- Method _remoteQueryDetect (line 213) -

-

string _remoteQueryDetect( -string -$query)

- - -
Process the built query using cURL and GET
-

Parameters

-
    -
  • string $query: GET fields
  • -
- -

Info

-
    -
  • return - response
  • -
  • access - private
  • -
-
-
-
-

Inherited Variables

- - - -

Inherited Class Variable Summary

- -
-
-

Inherited Methods

- - - -

Inherited Method Summary

- -
-
- -
-
- Documentation generated on Wed, 23 Jun 2010 12:15:23 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_example.php.html b/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_example.php.html deleted file mode 100644 index 9d5eb5cb..00000000 --- a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_example.php.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - Docs for page example.php - - - - - - - -

File: /example.php

-
- - -
-

Description

- - - - -

Classes defined in this file

- - - - - - - -

CLASS NAME

DESCRIPTION

-
- -
- - -

Include/Require Statements

- - - - -
-

- 'googleTranslate.class.php' (line 3) -

-

require_once : 'googleTranslate.class.php'

- -
    -
-
-
-
- - -

Global Variables

- - - -
-
- - - -

Constants

- - - -
-
- - -

Functions

- - - -
-
- -
-
- Documentation generated on Mon, 22 Mar 2010 12:42:32 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_googleTranslate.class.php.html b/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_googleTranslate.class.php.html deleted file mode 100644 index 1344a3fc..00000000 --- a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_googleTranslate.class.php.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - Docs for page googleTranslate.class.php - - - - - - - -

File: /googleTranslate.class.php

-
- - -
-

Description

- -
GoogleTranslateWrapper: PHP wrapper for Google Translation services Copyright (C) 2010 Sameer Borate
-

GoogleTranslateWrapper 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.

GoogleTranslateWrapper 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.

You should have received a copy of the GNU General Public License along with GoogleTranslateWrapper; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

- - - -

Classes defined in this file

- - - - - - - - - - - -

CLASS NAME

DESCRIPTION

GoogleTranslateWrapperGoogleTranslateWrapper Main Class
-
- -
- - -

Include/Require Statements

- - - -
-
- - -

Global Variables

- - - -
-
- - - -

Constants

- - - -
-
- - -

Functions

- - - -
-
- -
-
- Documentation generated on Wed, 23 Jun 2010 12:15:22 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__example.php.html b/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__example.php.html deleted file mode 100644 index 308fcd4c..00000000 --- a/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__example.php.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - File Source for example.php - - -

Source for file example.php

-

Documentation is available at example.php

-
-
  1. <?php
  2. -
  3.  
  4. -
  5. require_once('googleTranslate.class.php');
  6. -
  7.  
  8. -
  9. $gt = new GoogleTranslateWrapper();
  10. -
  11.  
  12. -
  13. /* Translate tedt from one language to another */
  14. -
  15. $test "Bonjour de cette partie du monde";
  16. -
  17. echo $gt->translate($test"en""fr");
  18. -
  19.  
  20. -
  21. /* Detect the language of the given text */
  22. -
  23. $text "For me, it is far better to grasp
  24. -
  25.         the Universe as it really is than
  26. -
  27.         to persist in delusion, however
  28. -
  29.         satisfying and reassuring.";
  30. -
  31. print_r($gt->detectLanguage($text));
  32. -
  33.  
  34. -
  35.  
  36. -
  37. ?>
  38. -
-
-
-
- Documentation generated on Mon, 22 Mar 2010 12:42:32 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__googleTranslate.class.php.html b/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__googleTranslate.class.php.html deleted file mode 100644 index 39e0d22c..00000000 --- a/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__googleTranslate.class.php.html +++ /dev/null @@ -1,444 +0,0 @@ - - - - - File Source for googleTranslate.class.php - - -

Source for file googleTranslate.class.php

-

Documentation is available at googleTranslate.class.php

-
-
  1. <?php
  2. -
  3.  
  4. -
  5. /**
  6. -
  7.  * GoogleTranslateWrapper: PHP wrapper for Google Translation services
  8. -
  9.  * Copyright (C) 2010  Sameer Borate
  10. -
  11.  * 
  12. -
  13.  * GoogleTranslateWrapper is free software; you can redistribute it and/or
  14. -
  15.  * modify it under the terms of the GNU General Public License as published by
  16. -
  17.  * the Free Software Foundation; either version 2 of the License, or
  18. -
  19.  * (at your option) any later version.
  20. -
  21.  * 
  22. -
  23.  * GoogleTranslateWrapper is distributed in the hope that it will be useful,
  24. -
  25.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  26. -
  27.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  28. -
  29.  * GNU General Public License for more details.
  30. -
  31.  * 
  32. -
  33.  * You should have received a copy of the GNU General Public License
  34. -
  35.  * along with GoogleTranslateWrapper; if not, write to the Free Software
  36. -
  37.  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  38. -
  39.  *
  40. -
  41.  * @category    GoogleTranslateWrapper
  42. -
  43.  * @package     GoogleTranslateWrapper
  44. -
  45.  * @author      Sameer Borate
  46. -
  47.  * @copyright   2010 Sameer Borate
  48. -
  49.  */
  50. -
  51.  
  52. -
  53.  
  54. -
  55. /**
  56. -
  57.  * GoogleTranslateWrapper Main Class
  58. -
  59.  * 
  60. -
  61.  * @category    GoogleTranslateWrapper
  62. -
  63.  * @package     GoogleTranslateWrapper
  64. -
  65.  * @author      Sameer Borate
  66. -
  67.  * @link        http://www.codediesel.com
  68. -
  69.  * @copyright   2010 Sameer Borate
  70. -
  71.  * @version     1.7
  72. -
  73.  */
  74. -
  75.  
  76. -
  77. -
  78. {
  79. -
  80.     /**
  81. -
  82.      * URL of Google translate
  83. -
  84.      * @var string 
  85. -
  86.      */
  87. -
  88.     private $_googleTranslateUrl = 'http://ajax.googleapis.com/ajax/services/language/translate';
  89. -
  90.     
  91. -
  92.     /**
  93. -
  94.      * URL of Google language detection
  95. -
  96.      * @var string 
  97. -
  98.      */
  99. -
  100.     private $_googleDetectUrl = 'http://ajax.googleapis.com/ajax/services/language/detect';
  101. -
  102.     
  103. -
  104.     /**
  105. -
  106.      * Language to translate from
  107. -
  108.      * @var string 
  109. -
  110.      */
  111. -
  112.     private $_fromLang = '';
  113. -
  114.     
  115. -
  116.     /**
  117. -
  118.      * Language to translate to
  119. -
  120.      * @var string 
  121. -
  122.      */
  123. -
  124.     private $_toLang = '';
  125. -
  126.     
  127. -
  128.     /**
  129. -
  130.      * API version
  131. -
  132.      * @var string 
  133. -
  134.      */
  135. -
  136.     private $_version = '1.0';
  137. -
  138.     
  139. -
  140.     /**
  141. -
  142.      * Text to translate
  143. -
  144.      * @var string 
  145. -
  146.      */
  147. -
  148.     private $_text = '';
  149. -
  150.     
  151. -
  152.     /**
  153. -
  154.      * Site url using the code
  155. -
  156.      * @var string 
  157. -
  158.      */
  159. -
  160.     private $_siteUrl = '';
  161. -
  162.     
  163. -
  164.     /**
  165. -
  166.      * Google API key
  167. -
  168.      * @var string 
  169. -
  170.      */
  171. -
  172.     private $_apiKey = '';
  173. -
  174.     
  175. -
  176.     /**
  177. -
  178.      * Host IP address
  179. -
  180.      * @var string 
  181. -
  182.      */
  183. -
  184.     private $_ip = '';
  185. -
  186.     
  187. -
  188.     /**
  189. -
  190.      * POST fields
  191. -
  192.      * @var string 
  193. -
  194.      */
  195. -
  196.     private $_postFields;
  197. -
  198.     
  199. -
  200.     /**
  201. -
  202.      * Translated Text
  203. -
  204.      * @var string 
  205. -
  206.      */
  207. -
  208.     private $_translatedText;
  209. -
  210.     
  211. -
  212.     /**
  213. -
  214.      * Service Error
  215. -
  216.      * @var string 
  217. -
  218.      */
  219. -
  220.     private $_serviceError = "";
  221. -
  222.     
  223. -
  224.     /**
  225. -
  226.      * Translation success
  227. -
  228.      * @var boolean 
  229. -
  230.      */
  231. -
  232.     private $_success = false;
  233. -
  234.     
  235. -
  236.     /**
  237. -
  238.      * Translation character limit.
  239. -
  240.      * Currently the limit set by Google is 5000
  241. -
  242.      * @var integer 
  243. -
  244.      */
  245. -
  246.     private $_stringLimit = 5000;
  247. -
  248.     
  249. -
  250.     /**
  251. -
  252.      * Chunk array
  253. -
  254.      * @var array 
  255. -
  256.      */
  257. -
  258.     private $_chunks = 0;
  259. -
  260.     
  261. -
  262.     /**
  263. -
  264.      * Current data chunk
  265. -
  266.      * @var string 
  267. -
  268.      */
  269. -
  270.     private $_currentChunk = 0;
  271. -
  272.     
  273. -
  274.     /**
  275. -
  276.      * Total chunks
  277. -
  278.      * @var integer 
  279. -
  280.      */
  281. -
  282.     private $_totalChunks = 0;
  283. -
  284.     
  285. -
  286.     /**
  287. -
  288.      * Detected source language
  289. -
  290.      * @var string 
  291. -
  292.      */
  293. -
  294.     private $_detectedSourceLanguage = "";
  295. -
  296.     
  297. -
  298.     const DETECT = 1;
  299. -
  300.     const TRANSLATE = 2;
  301. -
  302.  
  303. -
  304.     
  305. -
  306.     /**
  307. -
  308.      * Build a POST url to query Google
  309. -
  310.      *
  311. -
  312.      */
  313. -
  314.     private function _composeUrl($type
  315. -
  316.     {
  317. -
  318.         if($type == self::TRANSLATE)
  319. -
  320.         {
  321. -
  322.             $fields = array('v'         => $this->_version,
  323. -
  324.                             'q'         => $this->_text,
  325. -
  326.                             'langpair'  => $this->_fromLang . "|" $this->_toLang);
  327. -
  328.         }
  329. -
  330.         elseif($type == self::DETECT)
  331. -
  332.         {
  333. -
  334.             $fields = array('v'         => $this->_version,
  335. -
  336.                         'q'         => $this->_text);
  337. -
  338.         }
  339. -
  340.         
  341. -
  342.         if($this->_apiKey != ""$fields['key'$this->_apiKey;
  343. -
  344.         if($this->_ip != ""$fields['userip'$this->_ip;
  345. -
  346.  
  347. -
  348.         $this->_postFields = http_build_query($fields''"&");
  349. -
  350.     }
  351. -
  352.  
  353. -
  354.     
  355. -
  356.     /**
  357. -
  358.      * Process the built query using cURL and POST
  359. -
  360.      *
  361. -
  362.      * @param string POST fields
  363. -
  364.      * @return string response
  365. -
  366.      */
  367. -
  368.     private function _remoteQuery($query)
  369. -
  370.     {
  371. -
  372.         if(!function_exists('curl_init'))
  373. -
  374.         {
  375. -
  376.             return "";
  377. -
  378.         }
  379. -
  380.         
  381. -
  382.         /* Setup CURL and its options*/
  383. -
  384.         $ch curl_init();
  385. -
  386.         curl_setopt($chCURLOPT_URL,$this->_googleTranslateUrl);
  387. -
  388.         curl_setopt($chCURLOPT_REFERER$this->_siteUrl);
  389. -
  390.         curl_setopt($chCURLOPT_RETURNTRANSFER1);
  391. -
  392.         curl_setopt($chCURLOPT_TIMEOUT15);
  393. -
  394.         curl_setopt($chCURLOPT_POST1);
  395. -
  396.         curl_setopt($chCURLOPT_POSTFIELDS$query);
  397. -
  398.  
  399. -
  400.         $response curl_exec($ch)
  401. -
  402.  
  403. -
  404.         return $response;
  405. -
  406.     }
  407. -
  408.     
  409. -
  410.     
  411. -
  412.     /**
  413. -
  414.      * Process the built query using cURL and GET
  415. -
  416.      *
  417. -
  418.      * @param string GET fields
  419. -
  420.      * @return string response
  421. -
  422.      */
  423. -
  424.     private function _remoteQueryDetect($query)
  425. -
  426.     {
  427. -
  428.         if(!function_exists('curl_init'))
  429. -
  430.         {
  431. -
  432.             return "";
  433. -
  434.         }
  435. -
  436.         
  437. -
  438.         $ch curl_init();
  439. -
  440.         $url $this->_googleDetectUrl . "?" $query;
  441. -
  442.         curl_setopt($chCURLOPT_URL$url);
  443. -
  444.         curl_setopt($chCURLOPT_RETURNTRANSFER1);
  445. -
  446.         curl_setopt($chCURLOPT_REFERER$this->_siteUrl);
  447. -
  448.  
  449. -
  450.         $response curl_exec($ch)
  451. -
  452.         return $response;
  453. -
  454.     }
  455. -
  456.     
  457. -
  458.     
  459. -
  460.     /**
  461. -
  462.      * Self test the class
  463. -
  464.      *
  465. -
  466.      * @return boolean 
  467. -
  468.      */
  469. -
  470.     public function selfTest()
  471. -
  472.     {
  473. -
  474.         if(!function_exists('curl_init'))
  475. -
  476.         {
  477. -
  478.             echo "cURL not installed.";
  479. -
  480.         }
  481. -
  482.         else
  483. -
  484.         {
  485. -
  486.             $testText $this->translate("hello""fr""en");
  487. -
  488.             echo ($testText == "bonjour""Test Ok." "Test Failed.";
  489. -
  490.         }
  491. -
  492.     }
  493. -
  494.     
  495. -
  496.     /**
  497. -
  498.      * Check if the last translation was a success
  499. -
  500.      *
  501. -
  502.      * @return boolean 
  503. -
  504.      */
  505. -
  506.     public function isSuccess()
  507. -
  508.     {
  509. -
  510.         return $this->_success;
  511. -
  512.     }
  513. -
  514.     
  515. -
  516.     /**
  517. -
  518.      * Get the last generated service error
  519. -
  520.      *
  521. -
  522.      * @return String 
  523. -
  524.      */
  525. -
  526.     public function getLastError()
  527. -
  528.     {
  529. -
  530.         return $this->_serviceError;
  531. -
  532.     }
  533. -
  534.     
  535. -
  536.     
  537. -
  538.     /**
  539. -
  540.      * Get the detected source language, if the source is not provided
  541. -
  542.      * during query
  543. -
  544.      *
  545. -
  546.      * @return String 
  547. -
  548.      */
  549. -
  550.     public function getDetectedSource()
  551. -
  552.     {
  553. -
  554.         return $this->_detectedSourceLanguage;
  555. -
  556.     }
  557. -
  558.     
  559. -
  560.     
  561. -
  562.     /**
  563. -
  564.      * Set credentials (optional) when accessing Google translation services
  565. -
  566.      *
  567. -
  568.      * @param string $apiKey your google api key
  569. -
  570.      */
  571. -
  572.     public function setCredentials($apiKey$ip)
  573. -
  574.     {
  575. -
  576.         $this->_apiKey = $apiKey;
  577. -
  578.         $this->_ip = $ip;
  579. -
  580.     }
  581. -
  582.     
  583. -
  584.     
  585. -
  586.     /**
  587. -
  588.      * Set Referrer header
  589. -
  590.      *
  591. -
  592.      * @param string $siteUrl your website url
  593. -
  594.      */
  595. -
  596.     public function setReferrer($siteUrl)
  597. -
  598.     {
  599. -
  600.         $this->_siteUrl = $siteUrl;
  601. -
  602.     }
  603. -
  604.     
  605. -
  606.     
  607. -
  608.     /**
  609. -
  610.      * Translate the given text
  611. -
  612.      * @param string $text text to translate
  613. -
  614.      * @param string $to language to translate to
  615. -
  616.      * @param string $from optional language to translate from
  617. -
  618.      * @return boolean | string
  619. -
  620.      */
  621. -
  622.     public function translate($text ''$to$from '')
  623. -
  624.     {
  625. -
  626.         $this->_success = false;
  627. -
  628.         
  629. -
  630.         if($text == '' || $to == '')
  631. -
  632.         {
  633. -
  634.             return false;
  635. -
  636.         }
  637. -
  638.         else
  639. -
  640.         {
  641. -
  642.             if($this->_chunks == 0)
  643. -
  644.             {
  645. -
  646.                 $this->_chunks = str_split($text$this->_stringLimit);
  647. -
  648.                 $this->_totalChunks = count($this->_chunks);
  649. -
  650.                 $this->_currentChunk = 0;
  651. -
  652.              
  653. -
  654.                 $this->_text = $this->_chunks[$this->_currentChunk];
  655. -
  656.                 $this->_toLang = $to;
  657. -
  658.                 $this->_fromLang = $from;
  659. -
  660.             }
  661. -
  662.             else
  663. -
  664.             {
  665. -
  666.                 $this->_text = $text;
  667. -
  668.                 $this->_toLang = $to;
  669. -
  670.                 $this->_fromLang = $from;
  671. -
  672.             }
  673. -
  674.         }
  675. -
  676.         
  677. -
  678.         $this->_composeUrl(self::TRANSLATE);
  679. -
  680.         
  681. -
  682.         if($this->_text != '' && $this->_postFields != '')
  683. -
  684.         {
  685. -
  686.             $contents $this->_remoteQuery($this->_postFields);
  687. -
  688.             $json json_decode($contentstrue);
  689. -
  690.             
  691. -
  692.             if($json['responseStatus'== 200)
  693. -
  694.             {   
  695. -
  696.                 $this->_translatedText .= $json['responseData']['translatedText'];
  697. -
  698.                 if(isset($json['responseData']['detectedSourceLanguage']))
  699. -
  700.                 {
  701. -
  702.                     $this->_detectedSourceLanguage = $json['responseData']['detectedSourceLanguage'];   
  703. -
  704.                 }
  705. -
  706.                 
  707. -
  708.                 $this->_currentChunk++;
  709. -
  710.  
  711. -
  712.                 if($this->_currentChunk >= $this->_totalChunks{
  713. -
  714.                     $this->_success = true;
  715. -
  716.                     return $this->_translatedText;
  717. -
  718.                 }
  719. -
  720.                 else {
  721. -
  722.                     return $this->translate($this->_chunks[$this->_currentChunk]$to$from);
  723. -
  724.                 }
  725. -
  726.                 
  727. -
  728.             }
  729. -
  730.             else
  731. -
  732.             
  733. -
  734.                 $this->_serviceError =     $json['responseDetails'];
  735. -
  736.                 return false;
  737. -
  738.             }
  739. -
  740.         }
  741. -
  742.         else
  743. -
  744.         {
  745. -
  746.             return false;
  747. -
  748.         }
  749. -
  750.     }
  751. -
  752.     
  753. -
  754.     /**
  755. -
  756.      * Detect the language of the given text
  757. -
  758.      * @param string $text text language to detect
  759. -
  760.      * @return boolean | string
  761. -
  762.      */
  763. -
  764.     public function detectLanguage($text)
  765. -
  766.     {
  767. -
  768.     
  769. -
  770.         if($text == '')
  771. -
  772.         {
  773. -
  774.             return false;
  775. -
  776.         }
  777. -
  778.         else
  779. -
  780.         {
  781. -
  782.             $this->_text = $text;
  783. -
  784.         }
  785. -
  786.         
  787. -
  788.         
  789. -
  790.         $this->_composeUrl(self::DETECT);
  791. -
  792.         
  793. -
  794.         if($this->_text != '' && $this->_postFields != '')
  795. -
  796.         {
  797. -
  798.         
  799. -
  800.             $contents $this->_remoteQueryDetect($this->_postFields);
  801. -
  802.             $json json_decode($contentstrue);
  803. -
  804.             
  805. -
  806.             if($json['responseStatus'== 200)
  807. -
  808.             {   
  809. -
  810.                 return $json['responseData'];
  811. -
  812.             }
  813. -
  814.             else
  815. -
  816.             
  817. -
  818.                 $this->_serviceError =     $json['responseDetails'];
  819. -
  820.                 return false;
  821. -
  822.             }
  823. -
  824.         }
  825. -
  826.         else
  827. -
  828.         {
  829. -
  830.             return false;
  831. -
  832.         }
  833. -
  834.  
  835. -
  836.     }
  837. -
  838.     
  839. -
  840. }
  841. -
  842.  
  843. -
  844.  
  845. -
  846. ?>
  847. -
-
-
-
- Documentation generated on Wed, 23 Jun 2010 12:15:23 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/blank.html b/src/googleTranslate-1.7/docs/blank.html deleted file mode 100644 index ba4c3e72..00000000 --- a/src/googleTranslate-1.7/docs/blank.html +++ /dev/null @@ -1,13 +0,0 @@ - - - GoogleTranslateWrapper v1.7 - - - - -

GoogleTranslateWrapper v1.7

-Welcome to GoogleTranslateWrapper!
-
-This documentation was generated by phpDocumentor v1.4.1
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/classtrees_GoogleTranslateWrapper.html b/src/googleTranslate-1.7/docs/classtrees_GoogleTranslateWrapper.html deleted file mode 100644 index 09514770..00000000 --- a/src/googleTranslate-1.7/docs/classtrees_GoogleTranslateWrapper.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - -

- -

-

Root class GoogleTranslateWrapper

- - -
-
- Documentation generated on Wed, 23 Jun 2010 12:15:22 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/elementindex.html b/src/googleTranslate-1.7/docs/elementindex.html deleted file mode 100644 index e73e45fd..00000000 --- a/src/googleTranslate-1.7/docs/elementindex.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - -

Index of All Elements

-  -Indexes by package:
- -
- d - g - i - s - t - _ - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
d  - top
   DETECTin file googleTranslate.class.php, class constant GoogleTranslateWrapper::DETECT
   detectLanguagein file googleTranslate.class.php, method GoogleTranslateWrapper::detectLanguage()
    Detect the language of the given text
g  - top
   getDetectedSourcein file googleTranslate.class.php, method GoogleTranslateWrapper::getDetectedSource()
    Get the detected source language, if the source is not provided during query
   getLastErrorin file googleTranslate.class.php, method GoogleTranslateWrapper::getLastError()
    Get the last generated service error
   googleTranslate.class.phpprocedural page googleTranslate.class.php
   GoogleTranslateWrapperin file googleTranslate.class.php, class GoogleTranslateWrapper
    GoogleTranslateWrapper Main Class
i  - top
   isSuccessin file googleTranslate.class.php, method GoogleTranslateWrapper::isSuccess()
    Check if the last translation was a success
s  - top
   selfTestin file googleTranslate.class.php, method GoogleTranslateWrapper::selfTest()
    Self test the class
   setCredentialsin file googleTranslate.class.php, method GoogleTranslateWrapper::setCredentials()
    Set credentials (optional) when accessing Google translation services
   setReferrerin file googleTranslate.class.php, method GoogleTranslateWrapper::setReferrer()
    Set Referrer header
t  - top
   translatein file googleTranslate.class.php, method GoogleTranslateWrapper::translate()
    Translate the given text
   TRANSLATEin file googleTranslate.class.php, class constant GoogleTranslateWrapper::TRANSLATE
_  - top
   $_apiKeyin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_apiKey
    Google API key
   $_chunksin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_chunks
    Chunk array
   $_currentChunkin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_currentChunk
    Current data chunk
   $_detectedSourceLanguagein file googleTranslate.class.php, variable GoogleTranslateWrapper::$_detectedSourceLanguage
    Detected source language
   $_fromLangin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_fromLang
    Language to translate from
   $_googleDetectUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_googleDetectUrl
    URL of Google language detection
   $_googleTranslateUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_googleTranslateUrl
    URL of Google translate
   $_ipin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_ip
    Host IP address
   $_postFieldsin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_postFields
    POST fields
   $_serviceErrorin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_serviceError
    Service Error
   $_siteUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_siteUrl
    Site url using the code
   $_stringLimitin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_stringLimit
    Translation character limit.
   $_successin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_success
    Translation success
   $_textin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_text
    Text to translate
   $_toLangin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_toLang
    Language to translate to
   $_totalChunksin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_totalChunks
    Total chunks
   $_translatedTextin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_translatedText
    Translated Text
   $_versionin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_version
    API version
   _composeUrlin file googleTranslate.class.php, method GoogleTranslateWrapper::_composeUrl()
    Build a POST url to query Google
   _remoteQueryin file googleTranslate.class.php, method GoogleTranslateWrapper::_remoteQuery()
    Process the built query using cURL and POST
   _remoteQueryDetectin file googleTranslate.class.php, method GoogleTranslateWrapper::_remoteQueryDetect()
    Process the built query using cURL and GET
- \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/elementindex_GoogleTranslateWrapper.html b/src/googleTranslate-1.7/docs/elementindex_GoogleTranslateWrapper.html deleted file mode 100644 index 067e5421..00000000 --- a/src/googleTranslate-1.7/docs/elementindex_GoogleTranslateWrapper.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - - -

Element Index, Package GoogleTranslateWrapper

-
    -
-Index of all elements -
- d - g - i - s - t - _ - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_  - top
   $_apiKeyin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_apiKey
    Google API key
   $_chunksin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_chunks
    Chunk array
   $_currentChunkin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_currentChunk
    Current data chunk
   $_detectedSourceLanguagein file googleTranslate.class.php, variable GoogleTranslateWrapper::$_detectedSourceLanguage
    Detected source language
   $_fromLangin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_fromLang
    Language to translate from
   $_googleDetectUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_googleDetectUrl
    URL of Google language detection
   $_googleTranslateUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_googleTranslateUrl
    URL of Google translate
   $_ipin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_ip
    Host IP address
   $_postFieldsin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_postFields
    POST fields
   $_serviceErrorin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_serviceError
    Service Error
   $_siteUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_siteUrl
    Site url using the code
   $_stringLimitin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_stringLimit
    Translation character limit.
   $_successin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_success
    Translation success
   $_textin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_text
    Text to translate
   $_toLangin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_toLang
    Language to translate to
   $_totalChunksin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_totalChunks
    Total chunks
   $_translatedTextin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_translatedText
    Translated Text
   $_versionin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_version
    API version
   _composeUrlin file googleTranslate.class.php, method GoogleTranslateWrapper::_composeUrl()
    Build a POST url to query Google
   _remoteQueryin file googleTranslate.class.php, method GoogleTranslateWrapper::_remoteQuery()
    Process the built query using cURL and POST
   _remoteQueryDetectin file googleTranslate.class.php, method GoogleTranslateWrapper::_remoteQueryDetect()
    Process the built query using cURL and GET
d  - top
   DETECTin file googleTranslate.class.php, class constant GoogleTranslateWrapper::DETECT
   detectLanguagein file googleTranslate.class.php, method GoogleTranslateWrapper::detectLanguage()
    Detect the language of the given text
g  - top
   getDetectedSourcein file googleTranslate.class.php, method GoogleTranslateWrapper::getDetectedSource()
    Get the detected source language, if the source is not provided during query
   getLastErrorin file googleTranslate.class.php, method GoogleTranslateWrapper::getLastError()
    Get the last generated service error
   googleTranslate.class.phpprocedural page googleTranslate.class.php
   GoogleTranslateWrapperin file googleTranslate.class.php, class GoogleTranslateWrapper
    GoogleTranslateWrapper Main Class
i  - top
   isSuccessin file googleTranslate.class.php, method GoogleTranslateWrapper::isSuccess()
    Check if the last translation was a success
s  - top
   selfTestin file googleTranslate.class.php, method GoogleTranslateWrapper::selfTest()
    Self test the class
   setCredentialsin file googleTranslate.class.php, method GoogleTranslateWrapper::setCredentials()
    Set credentials (optional) when accessing Google translation services
   setReferrerin file googleTranslate.class.php, method GoogleTranslateWrapper::setReferrer()
    Set Referrer header
t  - top
   translatein file googleTranslate.class.php, method GoogleTranslateWrapper::translate()
    Translate the given text
   TRANSLATEin file googleTranslate.class.php, class constant GoogleTranslateWrapper::TRANSLATE
- \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/errors.html b/src/googleTranslate-1.7/docs/errors.html deleted file mode 100644 index b17b8bb7..00000000 --- a/src/googleTranslate-1.7/docs/errors.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - phpDocumentor Parser Errors and Warnings - - -Post-parsing
- -

googleTranslate.class.php

-

Warnings:


-Warning on line 36 - package GoogleTranslateWrapper v1.7 is already in category , will now replace with category GoogleTranslateWrapper
-
-
- Documentation generated on Wed, 23 Jun 2010 12:15:24 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/index.html b/src/googleTranslate-1.7/docs/index.html deleted file mode 100644 index 500c9ade..00000000 --- a/src/googleTranslate-1.7/docs/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - GoogleTranslateWrapper v1.7 - - - - - - - - - - - <H2>Frame Alert</H2> - <P>This document is designed to be viewed using the frames feature. - If you see this message, you are using a non-frame-capable web client.</P> - - - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/li_GoogleTranslateWrapper.html b/src/googleTranslate-1.7/docs/li_GoogleTranslateWrapper.html deleted file mode 100644 index b067ed1c..00000000 --- a/src/googleTranslate-1.7/docs/li_GoogleTranslateWrapper.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - -

Navigation: GoogleTranslateWrapper

- -
- -
-phpDocumentor v 1.4.1
-
-HTML layout inspired by PHPEdit
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/media/images/Class.gif b/src/googleTranslate-1.7/docs/media/images/Class.gif deleted file mode 100644 index ada36bbb19ec43993b6ec39a4accc163f6465c8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeHGOKTKC5H1%Fji)v-GD_5Rj9CX1Ga%?{e641qF`8rr5fzCJ2r`O~_Mr4dwD8&B zCXNzhBAX>EUKT|3pcqKdtfCMXkvYi{;$xE2C0zn`VXbJR$^bi1rp-G5QRFS}#Qa&ZVVfY5~l`5ALWfhf`3MdW2Fo-l%pi~&}FsKy5FbbnUr!a~_ zrJ=Vz+WHn%Lg^JLEjp%rU-@NK4pdN9L7*j6s2QR{n(0%@QA)p}Vyg|ci5An;|MBl1 zSW%gP$}9l+4V#udJ3Cc9u;%3I?#@#X8)&(`v8MgUl~QfPiTT@3ZNBg--qPFrYx?ok zO#hk%O?BC(y6f4F+x5F1eQ51kwDP1;`><~FXs)H_(DUvF^L_P(s%GN?9Va8L2i|zp zno9R9YIr%1of&PXkTaVwd!2TnHWCZm3x8h-9I~XBgsAS)Uk=z z?8U&vnk9XcFw*s@*tq>*@xgTIi>zL9`EDuOvvjm^N7LHleMi2&%FNrccO2?J&$`u? zX*@q&RqTlGT9+!(DmzxQ^WMhk#6)l_yL;=MZ07rLTkqBz-{_n{a$sk)y`-K_cE%f54(QF5X}D=j7k8>J`GiHq+Tf6oLIfEE9s`Rc}aex>)cQ zNrxJ>au-5iQi0V?1Vuz!=+YRw30~;t#k6q>f>R5Bp6B>04AlT%}mbCQpt23Qwmecgj-3wPTFE8nXxC2wf{9fSDE>uR7m(v?VtSEhS?Waf1H q>S!u9z9~J_IKNi6dpm#dVs)%|vfRD=p}k@K$J|X4tM}KS{eJ*ogzM=5 diff --git a/src/googleTranslate-1.7/docs/media/images/Constants.gif b/src/googleTranslate-1.7/docs/media/images/Constants.gif deleted file mode 100644 index eba8d08fed5a8942dcd32a61086e4bf10f4ee3c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmeH`&1(}u7{;d+b<=7aE0nFY*wi*OL7`%-Mg?Pp#1tbnUdmolQ>c2FB;KEWQnek1R;h+%rQc3!YBdIqG5z(X^3%iEDlUJDmt@uPIZUtO6dx9 z#Dr}mn4JJfD48;il$}onVM;VoQl=1h)3M#u$XZ60*Rr9=he2M*yuwN&s0dM!!rwp`$%bu}}==tCUju(O_T@TS; z=DtULkNcwLOV3x!KFYwSL0|?U1j-8oD->=h-A1F<5Fi?^5K$?iYC;79LxDmdO2MQ6 zDP$8Rq>>UHiIFOasG@-Ml#(g}YYKgZp~9$-k`6X+giY7nDffPL zjwB&HQN9I{Quzc26xGyEPX}$EWqh zja%n?Nq;%Z#fI6=?YWD?&s(5(s6F|)erD+Ejm;hD$0ND^6Aybx^2fwrp|!2OJ3Tx- zPHqnLY)ba6(aH4?Z|efRzyA8(%2@i*mbK3>+O*ELH&c6x#cFA9dUnf)#Oi%*-M5vs z#RZL&#s_viy^?H?wO)L6C~Z#{tK~z^i;17Bvzxc=sb>>fTA7m0x&Tg46M(o%ge2HM4LTjL?F*>|?*x0a-y_C~In2R6N zCOTBwSROpM)qS7Rp5O2JI6d$TpC1~) z*I8h}gTG*a0lx$efCoST0)Pl00Vn_}fF8^l1sEgPViksUSdOrq!g40Vxg4)@e2wRA z4p|7*5OR@V2ttV$OeC0Cum!=!f-7JHVH0CZz!t_8gdHqauxR@fB~6l6WXTjIOO|X& zazuIErz}@w*_Mbwh>;~lLQI*MgwzPJrEF2jIwYs%a(XsrW)(|OHJ_?#sOpNQmUOkE zYKE$nlyzD%1DX~!E3{Ihj!kPewH?oMXwC5rbsXxtE_FRWIlj8ob7>G>0P6V@-%?70 zZczK;$AA3m7dRe#K=2E|{DQ63gD1c18_ApR^{%IR{avcD0n*D!J>7r%%`JY$iZns% zm)X=ewynD#Vrw0-Og*}I_~WYurZ5<47%ktAjP&qllG(=8zL=lyK-Vmd-@dmx32iT{ zyBjy=KIg~Evp?E_lf1n_~!Of>dK)zm&Z3Bgqpjr zu1&<7=AsWr?;ha`iRqb^&VkIt-iy|y)KLEQZoNJ|6*|y=?#W(#`z;DzoXreQrCXX4 z$<^LMXC!)zNq=3w6x({#etK*tJyMN4?`v8N;py=3{L#U)KX-cb%tAb3>Yut;IQ0id Cb;vsa diff --git a/src/googleTranslate-1.7/docs/media/images/Destructor.gif b/src/googleTranslate-1.7/docs/media/images/Destructor.gif deleted file mode 100644 index bf3d62b37aa22bdc5cbef5a34af62a0e9ebecc8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1043 zcmeHG!Alfj6o0zzI;PZQR%3^7Ov6#Z{j@`0MQjsRP99=}kWZs@O^byNO$T8vrsHb0 zkj7{kUW~Te1_=vYMwDQTR;Icvo(9Zx@HB^r@%Hsie@67<_ulWvd++q%ceU%vSvvm(d;FFm)rR zS2OI??GUJ!V+=uy{Wp8CE|{eU%(sZRr+h7~ZdF;hxuIAWH$u>RxU z_&{rzfG`Wd?Za22NlT2^a z!l9FKj<4$$p4@e2&Qy#&{xa9MYPN1S?yk4it&i?4M-LoriCWWpgS(Y$#>ktE%?}OA zrS$OX*w&Aos`*oG?fbohlg|om!|x5eJ$e0ktU0kdTAF=2*U{5I+*P0LoQR&d`SxD* z&#vR?z6W)+vk^H`UX$p*CQcO0j!xs_=J&PIk_gv)XL_sT{;Q_4Zlf0sz*Mw8ZZ<9b xF3g`UzxZt?0aFL7FARN-_snb@Yl*y|@rOIH%ErXF{pj2fH=Dl|dtJf7`9Hr4%liNT diff --git a/src/googleTranslate-1.7/docs/media/images/Disk.gif b/src/googleTranslate-1.7/docs/media/images/Disk.gif deleted file mode 100644 index 7ab08fd085b5f14fb5e098c4938b0898f23f61fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 941 zcmZ?wbhEHb6ky)z#H4Akfp& zGNq@dXUdc*b3kD0(xpq+u3fuz>(;${_Z~ZT>>LQ(yLRo`y?ghbKY#xI{rm6VzyBWv zqaiTJLO_QB2tav(fnySbCx^(##>4FbvQ{+`iUA260@6}C7ZjR~92S%{D@j=KkeP#z zU%QLJP^pETQ^YA^!-7U;juv^Vf)xyj2Uyqz3{qAIFgCaGiK@7HFg!Ta%&Mf}@}NP{ ziG_nz${}IFg9b(pF-wOG2S(>+24+41hYbwO9F58@4895r4@7WDI~n9y2)MM(lXW?> O)Z0AQbsr-mgEauW@A@SG diff --git a/src/googleTranslate-1.7/docs/media/images/FolderClosed.gif b/src/googleTranslate-1.7/docs/media/images/FolderClosed.gif deleted file mode 100644 index 68c6563cf367cbf4e1c789e264b6e4fac1304488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 963 zcmZ?wbhEHb6kyi%~o!!#X($mv3Cz)YRHp9|vj-|yMYl{WeRts#cme|@N zvA0EWZ;#@!9?fG@G|x>jJU7Si+_`htmRerBcJ1C;r+fGAJ>Tl}es9qC@8AC)Oa6Z@ z`Tw=-|Ie%cKX3W}zUBY-p8wyc{Qp1a|0oy@fx#C7It)Mn$_oq}D;V5+Iv5@@vT#eX zXvIh*E@bB96z9s(P-@{2RF*J^*x=B})S|4=!r(Y*$q^Q2ot7^T9yT&h*ON9$Sg>Gm zE4!?WN6d@FBaMvw77jZ+wya2na0L@bEAri-*L-gG{Z* NCnyIyNC+@k0|2eA4(I>? diff --git a/src/googleTranslate-1.7/docs/media/images/FolderOpened.gif b/src/googleTranslate-1.7/docs/media/images/FolderOpened.gif deleted file mode 100644 index 8b012d553cb34beaf5c60529ef44c1e829f33be5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 957 zcmZ?wbhEHb6kyOp`TxD=|Mw~Xzt8#qf6D*=KyvB-|KI31`iUO_=QbY zg=9K7GVyULaJ0<$z}&^iB$VS(kl1o`zN8Be$AkxtOu|Z&w0x}^85tLG%T4*g@Q68d zwY-)J!vy2TRv}rN7TMbm4+5<<>br1YTkdUUe_0m=hwbZPcg4si1Slvp+~428YU9$V T*u=!%F05R(K-|@Vfx#L8{1XpQ diff --git a/src/googleTranslate-1.7/docs/media/images/Functions.gif b/src/googleTranslate-1.7/docs/media/images/Functions.gif deleted file mode 100644 index bc2def806f4c68db186f2739e6aa1b6d0cd5c670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1064 zcmeH`&r20i6vyvq*^A6ZF|w?1&?ke&5%{YF00sal03ZMq00!bgA_4T06FLGq1x5}S2pA+`7EM#snZh)EXa zxste&x{A1p7XnuF?4sbFV4lQYSP&i;!Vx|bk_%}ICH$!1D=vK^eI{j521Ev2szMO@ zLBzta7)D+gMWGU*lA%&j=*AS4q#`9EteK;k#3*JgS*@(TmgRr^1V=z3#M<-Th(byL-gbmqixYj6I*q2?>2XWrFr z>8k^eE4%Kmo&Pd>>Vdpu()Ij@fr|NsC*_aw^_@50Z@z%ZN&aw1ADTTmRWo-O?@C(B zKl{L7SL@cBr?)GotJ^1^8$H1u(0}#!tF6^VF;QFHUHfvV?~^uovF6v_d5x7<9PhZi zeHX5OYngi6dFS4(&tqi=+XgoEAE3Em{K(SE>$z^NtfKwG_k6jwm>l1zOlZTqwVLGF zkrT!)@S-)pGkSOoj6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui01yBW000R70RP?7r|+LWc<{tb;V{91K7RNN3Vf$e9`EoE>kF!KtPG!KYZ@y%I diff --git a/src/googleTranslate-1.7/docs/media/images/I.png b/src/googleTranslate-1.7/docs/media/images/I.png deleted file mode 100644 index e8512fb911f40ec90e7cbf057ace91404573df37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv*$P6UUaa~gcQtTz3zOL*Scz79AwQm3V5DFCH zEbxddW?AMyVi9{#UaQ0r%7Fss&l*vy)E6e!K$>FVdQ&MBb@0CA5htN;K2 diff --git a/src/googleTranslate-1.7/docs/media/images/L.png b/src/googleTranslate-1.7/docs/media/images/L.png deleted file mode 100644 index eb334edaeac52e2f473ffd92a49b025fb6148ec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv*$P6UUaa~gcQtTz3zOL*Scz79Am98pQqyvRG z3p^r=85p=efH0%e8j~47LAC&&5ZCE_)&Kwh7Y~}?0Tf{>3Gxg6&+v4+fftY`;pyTS tQgJK!NBsYWhyUvpj=8p5Ib^(%U@*zon(m*SoDEdN;OXk;vd$@?2>{+EE2IDb diff --git a/src/googleTranslate-1.7/docs/media/images/Lminus.png b/src/googleTranslate-1.7/docs/media/images/Lminus.png deleted file mode 100644 index f7c43c0aa3bebb499e86eb744b1e47b9a9445ba7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv*!VDzYUPT51DfSXiUsv`EJiLsmQh${X`~(Vd z7I;J!Gca&{0AWU_H6}BFf(8LTA+A9B|NsBf`>KHqVn8Lk#c`lIrjj7P;QtIyw;Ol? zc?O;?jv*Ddk_A|pTm=*lC~zFVdQ&MBb@0OtiQr2qf` diff --git a/src/googleTranslate-1.7/docs/media/images/Lplus.png b/src/googleTranslate-1.7/docs/media/images/Lplus.png deleted file mode 100644 index 848ec2fc3bbaab6345864c303684ff8a86559cfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv*!VDzYUPT51DfSXiUsv`EJiLtR`ZJfMMF533 z3p^r=85p=efH0%e8j~47L4yFF5LY1m|NsB#ebqn)F`$y&;y6$pQ%R6t@PCG<+YP*c zJX22>$B>F!$pS1)t^$e&6gZd#)XV}^6#`leL>0XheB5$;*x1}$U0qr4a0#d>%dQ)bU--(louE{)-Wi#NJuy?IM~F*>BPaHz;Li# zfR9T;U?D?8BR`wk8HtBU$GSy%EgU>HEM#C{l9Nc-uz;bdS6o?4WI@6~CN?e(34w}_ z&zP7Q3Vy{bU^v(?&rJ8;kEhXuauP}Q<5C1*OO9eDy1qZtv6)`OvyP#kyS;N6;)9* zMOjo;SyokD)f80=R8w=ZuIaj-%~^(F*apd&rfrg(Wx1AZS;Vx7?GVQ$j_3PckcsON z&m+EHEc(RriC^@+z!gJ~Vo(N_5aN?iLl?$>{1X>A6MjJW3xIyZw>F-O6v%~u{ zPxE8rDh%wcjK8p+bT+lF)7_h0V@Kot+ppR;<2ArZue;|PVjpWy-`qL5g%Z`Xr>;M% z%6ut#bcE|0*mzetF;&MLIJ`o&rytM7Z)GBMGy&rWD=+4+txll1=ANBAC+wF`SJcLC zP^-xg)m(ITZH7sAOqND!61$1ULVa^jp>An;d2*s8R;TSIo_EZ*41F5mmW0mo(n}BY r?a{B1h4aI1=7-R>HWs^T{Tw;ek2caHdsUgyhaKw+lS59S0zvB^kI%vL diff --git a/src/googleTranslate-1.7/docs/media/images/PrivateProperty.gif b/src/googleTranslate-1.7/docs/media/images/PrivateProperty.gif deleted file mode 100644 index a21fffa0921356f4b6b181dc38b2645536875f24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1063 zcmeHGK}%F&6#blXe5H*~t$3yrjuJTL!hxY?7#BK~)~uW%5@wTwEd)2id<45SN4Xv`Tjr;4OG?JPB>J8UqYp$!figPd`$bME8Z&v}4z$pzy=<6=AcuzyJ-<0R!*>0U!*-fCP{P1RwzucnQn_ z3&0|f2iAa1pa9r_azdS;|M)jA&|3U};x91mH=Em9&YX))w#E;P!^ZDx)6KmHdu?qE zEE>7}?5(F-W*<}-?z_#$YVz)>y4qm+S?6x4D|j_mAD_9u zDv!9jW_rH4Ix7P=$FFC5KIOb6rPW5m&ZV)5rqsmir5sy+66qaHr#HGDKlk2Bm^uCP zTW=!|Ev07X%g&r_x)FNR*U>i}u1bgEU#7Z8-F4ONA9hzg-jMIY`>Kigk%#)xSM9&z iL*u8;*9V96=)K{@{)#%W?$6YXzi=Pl8~9kGv&bLMr$VDYh3DeNphg_^cHY9bye(Y0CRB&I^t|)a| z`Y{B`Vn0l<2csS)C>+>D88^a#qy~CuS!-cJf)RYU_0s9i{uMp+Iq<#bd(OEp2Ts?? z&Zg!8j4=PYsdk)Z$8osBxdWUBIS+9j;XKAUr0B{TPqoM~8 z1c(4c0b&3Oz&wBsU;vl^7C;8T25`h5G5Vi>Z36-K0^D0b(jWBs$z=Ull&0W@uXziWy#z4)r$p;1TiX#`+m+qh5-|cHW_;TX)>d=;Pudm_+ z{D+5@6N*6+j|b3eRt-{VDgl&r0)$|8%?&AdWxqO%ImU&+dSvfQh0a~J@k1! zGX9oYtSmsD()81gBJA&=C6gPTWP8hv+S0eFnelkd(d%=+vWL6(W+aO?4_3kTK;(DZWr vak6Q|@J`q4Zk2GKmqo|=!%O{bxy4}?U)hlxx%hR!UtIJ&_uf-mg;zmv0wNl=p8XU2@@06K`F@_m zz<2*Z|5s$#1QQgzl>vGN3%~|&09*hMfC9t@Fn~nc)Dgn~Lqi6bfoVpjnc1c=HDtw> zB`ix?wgGl*+oiVaq^_gS%5|jUNY`xe zcm?rF>Q&Se9_5ryQJN8&Q7Q-()NciT7Wjo91V)es!QC*(?4S(8Bn;CqY=vPKL@`7> zj*=+Kqc|okHd$;j28`K^1&rH_GnR7JVyw_3aPD!f1bE`|l<_o4n3Hfw6JsiMr&7N) z1+5m#FwZf|u`DnvB`LA0R9LA>2wO-luo5VwAW|h#NvV`nC^3{+O01-QLZzxi2~P=M z2^}$%43%<~ij+cyk-|b@rBG;2UnoQr4oa%GpdzS3R3)kkl|Z$+Of!fC(MJpsBg7an zMa&Tk#1gU6Jidi>?!Dgm1G`rnu-XMMR-kXuZv6G_?B20%`*VI~k^q5rP+JluX{uzvHqh4u4mzicREudFRPXn7_7WU(jipaI8j}s|_2T zoVDwx=W4gRe{FtaKDXL-4h(MU_;l~%`i1=L$47s7bN~0{ynn1?>%rM=;q`+vjj`8n zW>2?GjJI#-{`og}(ceYV8?^^^gRg5_XAa%#4fzh5mRousc)yIV`Q#&hZ>hO(eIVI* zk<@4Q^R~Vp&t3Xsxv#dAY}opIQ|~F*{MkF-RxBsoa)sTDr&-6E@J8=;nn`duu3=;qCCj#oX6{SjSt_;EOJ&citzcp94OL*Z7H zsf^g)P?*A)qA=A%WqyVERi=6PnWnL}HV-9kvAE@B!-^}G#Vkv+xXLZYxrf5JpL2tA zlk*rCj0>HMsNhU+RdB!Hn&7(NVIi0hst{gb3Y*!&L$`%#d$nyiw%>6S$1xly>^P>A zWKPmZ+H7*%O1VbLjk~Vyx`yjI(v3;imQt6}kTNV~RLYo?kfccpONvW!Ntz_1Bsobz zQW7yDKaobH6NQOPB2FZT#)&407KoO}Q;|0bLNg&sXd}2F6{Ld)J zSR*0@pZg}RXP4DJpB?V55lTks$V^r&$o`hxfiUCRL)1fC@rOD9!yuPU%0VH+a1cRxZ1c{P zd-onYcI@1_bNBAud;a|S`}gm^fB*h}6pV(z&<_C}P!0g)1qP1!4C)+n6cQC2n^<}M z8VU@W4mEKqnu*M~@Q|fjlv^S}Ls98apD>?ELI8u~(Pj>Qm4pKe8kv~bgcjLsSa7gu znvS@F#D##==J{s1auNaz4_TPZA|Is`EMRD86yoz>$hz#<$i%`T;iB~+t$8&IpN;Ad z1;-XPVJVLUhRF?=J6I)re0MKc8Qdr)uh6kmVeRdWMv77rzqYP$>T=s`R01^78UT+K BA4mWI diff --git a/src/googleTranslate-1.7/docs/media/images/PublicMethod.gif b/src/googleTranslate-1.7/docs/media/images/PublicMethod.gif deleted file mode 100644 index 571fd9ce186a1ca0c1f98d075768b232782a2eaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1038 zcmeHG!E4iS82x6~l67@NEH1Ev3#)TsMg8rxABxV{RhkW{QKtNQQCmf*hmKqZ5t&_v zL+e2awaN|(R&Y@CGW4)`=w{SW!swyL$f^<*A)<$P`o+VX644D{&v1m!?#-O={>zqd2hZ#!asI zi7RGew^QT8js63n_1s#sy08DxrD!;IBH3GspL>*e*q$tvZv~8WZ2j}wyF;h+qd%I# z-p2mq%-OBkT)4cLG1J0IaH=mjJpS^0GqD*RORrscF6N|guqR#_x%c$l{dnJt2KVbp zC=l!&EL76<;GU6O@lSeoXra5SJCb<3B?e9(oDMC0EwqnAq~}PQ=_-CNkEX)c=C>zc r=fGg$bpbuQS{XgFgZap7n~~_`+|P~Fm8l1NkIhFLV}Mvu$B3-Bv-R47I6YrJ_p3 zlEKfpd07`Oh5n@Ab}K+1~R});5Co~mVrEA0}9Tf|M=G~ zu!lL=`~}AUu&>|Z&({}{jRTYVgE#MwC2QP${+4TP(Tc{{7TMvj)2RxLi6KK=dX!$9BR?5V*cZxh9yk1sB+ zZTIXfJCqGfpDP^QQSPa48mcO2yIt3C<>cd$%v^DSd+fsb+2#^&b=TB-cByrClr?>- z);?tB$|}3A4rSxb!@2#J_!M_fCcJf(4F~tSRu;5C&HQ-zz12iwTcvL|A6~nY3V4sF zPZ&ixZz-?!@w@SMf550s|2Asd3w^FfXJ(S)yu$ETw`E-}R&oDw{d~>RM(4!7c*ecU H$Jv3u*#hmj diff --git a/src/googleTranslate-1.7/docs/media/images/T.png b/src/googleTranslate-1.7/docs/media/images/T.png deleted file mode 100644 index 30173254061a6fc4f1488a0133b2704b0e5eea18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 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 B{O#nkpi;(?AirP+hi5m^fE-m% z7srr_TgeFwOpI(f46|1#2yiGY`Di?KiU>FVdQ I&MBb@06e2A@c;k- diff --git a/src/googleTranslate-1.7/docs/media/images/Tplus.png b/src/googleTranslate-1.7/docs/media/images/Tplus.png deleted file mode 100644 index 2c8d8f4fd38259b2ef70fc63fad505fb0a0f55a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv*!VDzYUPT51DfSXiUsv`EJiLtRLI=-jc>;wv z3p^r=85p=efH0%e8j~47L4yFF5LY1m|NsB#ebqn)F`$y&;y6$pQ%R6t@PCG<+YP*c zJY!E6$B>F!$pS1)t^$e&6gZd#)XV}^6#`leL>0XheB5$;*x1}$U0qr4a0#d>%86hy4NT6+w`tp00i_>zopr0L}p{>Hq)$ diff --git a/src/googleTranslate-1.7/docs/media/images/Types.gif b/src/googleTranslate-1.7/docs/media/images/Types.gif deleted file mode 100644 index 7c13fd59a3c0609f76cf8bd61ac9b922f05cfc83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1049 zcmeH`!An#@9LHyM&9`Z;X_OU&iY^u#n35Pl=&o5C9>P;CSjI~U)b>M#w}chmeI3L^z9Z4&yAwCN3Kb zV~8=rBu6kN#3BR|f(QvcA+~7~WD{)L$hJcg+p!$SavjHYT-PPkbtxs3I*d|A8DoSo zn=ywmmxY;Q&IAw1ZO&cJDd&ub5?F8{LJA^;Ed&jN@GRj$;UOWRC%ETvPZCeso^+%q zWk^Y-kEL%*-;n|Keb)~hKcGRt0!0JGR1l~@tI#N}lvFBEN-ItEZW}tSh1Qp8T7K`IZ!lHa8@CO}>6OR+pRv-P`NW zJr%2w^k^Rdl~H5r9QgfnZtTR}%(KLN J8bu=D>|g!c_R;_V diff --git a/src/googleTranslate-1.7/docs/media/images/Variable.gif b/src/googleTranslate-1.7/docs/media/images/Variable.gif deleted file mode 100644 index 63b3f553003ca037323cea629d914602fb03f3ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1051 zcmeH`!Ap~I7{|X`29IvSBf0q=OkUlVvz9a=Fgr9?sCyYTB19`BS%F~0Qg7?9*~DTa zibi!9L4x4LSb=20z-CHFj7|eDqeXMx-W`Hpr+&T5KchaE@Au*1c@AIr4hM$%&rC8H z0tO5yKqt@xcmWN#3|s}mz%&pA5Ou-#3Q-k87j>lgyEjxw zX$(^82V%JY{0j+q4k}=jfPUk>uiSMj+1h)3C0L%R?AT9?+B z9{b|Y$oC(O_TEeDQ@i;Fmrb?IxYeZ=r~TNq^&5AW)cm8S0rga^oY;AKa(Jcnq4$3N zuvNLZABy|&Jagq<_C?5XzS(+uqQB<#b+&b%>-d_Dm_997Y(Z!C18Zhi`|aSbT6{iX zBeVL&U-4O8Ll@?1zRmc&+4MRT_`LbR>NuJjnNl4l6X=!N($^4RSFf5K$qpW}dB%C5 zJh{28j-E3t~REx%#;rcA`}%wc`Ud-FGwN8ICgXrpUu^5eprCyRT1TUz?~sM%!3 F**_P)xa`Z7f#eL0AQKK-;)M zje}6!i?|1ES&iU=NCO^RP^sIX5)jLRmx1=ORKZ1*P7dn0p?`xnfAeE_Z{EOz2k*$p za9`vU1`HgwzyK0J2p|Fw1sDfN0Hgq900N)^=m0hV18@NWpeTYp2qFj!gaDQ4MJR$0 zMMy=+LdZtQK^PDw7!nwTFiK+NVy`EbFiv1BW2{P;NSI2J62gWoCuLcYWkV*tL{1S| zA!MA86!9V@sZh@pB{Ee!2~`xTP^xH@9;Gx%y%Hsqswz#XR8}cbRZqpsHSd$EXnIoD ziD9t3naZ2Y%o}E&nP$>7g=vkOR>HJo)1sECS(c|^c@*WM<*5}dy=bRwyU3Wqn8}#U zm|%{|9Gy9~!wiR6j-xv+bzI$b6}Nl~m*-tUxodKlajtQ0ac*<&aPIOl!aH0D;R?as za#&7uA&NrSLNFnmt(y1xpMN@m?(zndcLC5J`2F+v^5e;cfw@hzUf&gHJ8w>S6o#6lG{_dB5BV{qxPFB9-LpNj=w zkM3-O&CZ954rKf-ySjVg>myAsvr|%bTRPL|ufdbEJu}r)Et!H+x?AzKvbME&;_Sq7 z^ug{+uT}$->9IMOd9$=J&7Q2Gb{}%$Tr>Xz| diff --git a/src/googleTranslate-1.7/docs/media/images/blank.png b/src/googleTranslate-1.7/docs/media/images/blank.png deleted file mode 100644 index cee9cd37a10ebe8d7fe6a6ed0d8d74a2889f6e9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv*$P6UUaa~gcQtTz3zOL*Scz7A*wL3%Pb^(Pr z3p^r=85p=efH0%e8j~47LAC&&5LY1m|NsA`H|O64vY1MO{DS{8Jl$^K1?2I2x;TbZ j+)DoO|34!$s|3ToYTbu_uiJV9r5HS2{an^LB{Ts5Dp4nx diff --git a/src/googleTranslate-1.7/docs/media/images/classFolder.gif b/src/googleTranslate-1.7/docs/media/images/classFolder.gif deleted file mode 100644 index 5492345f26cdda50757283033c57e4a329e37132..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1069 zcmeH`&r20i6vwZodHqq2S~2v)n*0HR3n#&R8f0c_FAI6Oh__Oo88{New1{pCp(|wF zF|iA2Ouv)|E}Rz8EFbuzh9VrQ#bBFRL^#oA$`+R(Jk6`Wpnacn7Uvwk=esy?x=wdC z#|9)MA%Xs)B8(8m2*;u!lG>3RLuw-Gv$F^ZOGuTlEMZlWu_P<9maJ3iR3ycc@tCgY zB%yPKAVi2ps74r}M5ZJ`Nsb5fpTc`oz3D7ojEzHj;g z^@Fr85`jm8AQ6a6n07)}3w=Edc_>6EAcRZ^UI<|bLMXDZn6PybBt&Qm!G*B1sw@zN z002`5i-1GHHNm6cncy?&6R~n_#+k5N! z7S~t1N*^0D%^M%pSH<^R&owW;pTD$LGhvMGS65FN<&9^?=#%BS@jD$xvhP7&;fLy@ zqwCd!FBYbY3yikjqMO509OvcstZ$wwDMm(b_u-0#j;96NcQ$;Rt9@JaqG{KGuT`IW zw&j)A_xI0jT&~^0H#$xqq3!u{pEI?zsVqO*J-u~o;(X0Xc4Tt@!|tlVrAKAAu3tEj zJKkN^a<}B?yF|-9BR=*EO`lvSoZNZf*`ZHLTd7fYd`O=CuDs4KJ2quEfY-4FC~iDX0Jd diff --git a/src/googleTranslate-1.7/docs/media/images/file.png b/src/googleTranslate-1.7/docs/media/images/file.png deleted file mode 100644 index 0bb2427f8afe94b50835b0a6fb2f7fc4b6624bb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+o!2~3GGZMc6DV-A6h!W?b)Wnj^{5*w_%-mFl zkkV8IBTEIZ#5@Hf0|O%FdgViBVQqh^b}u-UUD* z&H|6fVg?4j!ywFfJby(BP>?0v(btiIVPik{pF~y$21Zp+7srr_TgiX^|F>tp*udH$ zEiL_V#ftUo-3uDh%uP)G{Qt|SZB_7q!9$E~2FI`q8Re^|Ns4w54;**JyG{r3reJX3bz{Zf3vmrZqg`n}6P+S5*tz>i^H* z#2~u%W)Z8#mr%xxhMwd+SvmjaL%%Odb!ew<(5(2Ban^6jjOpAT8-5&KS>(Rw-29d% zNdZfFap?uEMT+k<(v+DOT$Z%I^ZS1lw?N{?lj=*DIus0-A5UO#>EQ|b(2@MtwUbVx|CCuD_3M1(}kL@rTAt`?@NJD7g1T-cVt+{lozLxII0fq`Ms9dUP2 S4@VK8*$kepelF{r5}E+oVobaM diff --git a/src/googleTranslate-1.7/docs/media/images/minus.gif b/src/googleTranslate-1.7/docs/media/images/minus.gif deleted file mode 100644 index 9e998f1b737a63fda6e7fc27521ec539bb540640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 zcmZ?wbhEHb$k6o0aS1$00pNS=X7u%~~K_OaJ-+)NSHsnb3# Jlow&J1_04p503x< diff --git a/src/googleTranslate-1.7/docs/media/images/msgError.gif b/src/googleTranslate-1.7/docs/media/images/msgError.gif deleted file mode 100644 index 93c6d36a82266e869e09e25b8306c04bb48b3c77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 997 zcmZ?wbhEHb6krfw_|5|33$!_y6Am5l{#y50L;#j)Kt;7(yYS1IhuQyuiS5ib2xmLIYzn8wZE6 zfC)!qBO5y(R~CbV;DJNjd~y;;0vH(>xy6kl6c`p9I@TeL}|32rOiBWM@#wkXZ0gk(HB6$Ya5S z1=@_Q3_MvI92A>aIK{RkZHNe4+RP)wC$nI}!gq(;88f0b1RP*!-NDCH-a6sN>xYL0 vST0=gDtP2RL5wXTM0#UUTbJ1Xq=p{_Uk*=54gP;sYGeBSQ*#wrSQxAU@(?F` diff --git a/src/googleTranslate-1.7/docs/media/images/msgFatalError.gif b/src/googleTranslate-1.7/docs/media/images/msgFatalError.gif deleted file mode 100644 index 6257bbe5679aef76cac20e5bd85aa60456f40a15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1040 zcmeH`ziSg=7{{MWbIo%tF;6Qgub8Cwrb|z1Np)#Rk+hYFi$ie`acC<-28(fUu!GzY z2^}IhI5=cz>f%y}U>EhE@yFSrgcc-Zkh7A)iOU;7x$*V#H+1cX&oh0$(-)p=*9)`R z6#@bufCCr+GXPnD1%M@hs=;gAs2RpKW82)=G5C%#Vpmc2MII zkLT_;x4u48)RYM$^C(MeB6Rykr&0ejs9jcnb>4If*3jAI z4<`Int6F^M=%7B4SI?xc>~GHBtwiFfbeJZOER2uSx7QYgwUJo3S5)+7BzmscY0M9l zD={rpD_XDem1t&_W%L23qAd;o)_3)?O5@Wn8_z98NnYG|a)Nebx9;5wL_l!t*xqYEd<+E6UAuPf{rl(d-@pI<{{Q#y@4th<|L_0bgNX0{ z|AR4*8U>>vFsMR62b2Rqd4YlB5Q961h~c7U4nY|=1rZA+7e{_2qXG^Fg@&dkB`X7w z6ON7y+`Q@x0Su28whPKIG~5w5)O?to%Vge_2MUKec;#3mBnpiVxi-o&q~z>qVD#oy zVlZF{P)y{QrXyQ)V8NB$-!YL078}m98LlPh7tmniV|L$icZh({eS-a z|9cSl{~d_FzyA&b|NjFK7z3$MFd70wGz4@QfB=*i7&uliC+G*!-E~-sv#?0Bq*>p3X2Ebd6Ce>(jg+1u|#3xA!Y`4Ew2R2f#KgkdWn{szk*Q?~ zp9q6SL&BRwjmEo$rUZmMbLSGRcY9H}<-wiJEZQY&EH)aPUT3MRwnkw)03qb zp#%v80H#VXO^~W2*e2MjJK#u&(TTAVV>QNljB!kL#0KI5;xdwlR7Ir_A`zia*d`hy z^3+7c#5VC5u}AC^H;9*sQOU&2Hgi!elTC)dT0$h!*-`7s-cc~9ow~NQ-P$Ry>PGcjG2ei; zHU4{eyVuurak;tw)`7$e>!N8F*MzP^VZOHEZl@>+x^h-C| gEWb_{9=-3ZB|cf_3TIPqj{p96-bsC!u}rxB4R diff --git a/src/googleTranslate-1.7/docs/media/images/openfoldericon.png b/src/googleTranslate-1.7/docs/media/images/openfoldericon.png deleted file mode 100644 index 15fcd567111e13cfd9e6f1c0cd8103ca0e2d76ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFKheKdVb6i#4OEw{M26cw_Gj{yv63W{1!+$*s*N3f2 zemsk&HQ&u~&f!%4#A(caCa+!4-!jYT%bH^M9p4*PZTkKrpyj95hk2~iCLLVQKL3cY Ud_U9dR-h#ep00i_>zopr03|O{b^rhX diff --git a/src/googleTranslate-1.7/docs/media/images/plus.gif b/src/googleTranslate-1.7/docs/media/images/plus.gif deleted file mode 100644 index cade83c7f9634e275e6ae4efc8f7265a2f917448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67 zcmZ?wbhEHb$k6o0aS1$00pNS=X7q^Ez8_O=aknoc!VM^_Y{ MKUcyL#K2$;02xgZ8~^|S diff --git a/src/googleTranslate-1.7/docs/media/images/spacer.gif b/src/googleTranslate-1.7/docs/media/images/spacer.gif deleted file mode 100644 index 1fa6d01f01faa218d0af23cad7a0b5606a49c2ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55 zcmZ?wbhEHb=2) { - this.childNodes[this.childNodes.length -2]._last = false; - } - while (root.parentNode) { root = root.parentNode; } - if (root.rendered) { - if (this.childNodes.length >= 2) { - document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon); - if (this.childNodes[this.childNodes.length -2].folder) { - this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon; - this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon; - } - this.childNodes[this.childNodes.length -2]._last = false; - } - this._last = true; - var foo = this; - while (foo.parentNode) { - for (var i = 0; i < foo.parentNode.childNodes.length; i++) { - if (foo.id == foo.parentNode.childNodes[i].id) { break; } - } - if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; } - else { foo.parentNode._last = false; } - foo = foo.parentNode; - } - document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString()); - if ((!this.folder) && (!this.openIcon)) { - this.icon = webFXTreeConfig.folderIcon; - this.openIcon = webFXTreeConfig.openFolderIcon; - } - this.folder = true; - this.indent(); - this.expand(); - } - return node; -} - -WebFXTreeAbstractNode.prototype.toggle = function() { - if (this.folder) { - if (this.open) { this.collapse(); } - else { this.expand(); } - } -} - -WebFXTreeAbstractNode.prototype.select = function() { - document.getElementById(this.id + '-anchor').focus(); -} - -WebFXTreeAbstractNode.prototype.focus = function() { - webFXTreeHandler.selected = this; - if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; } - document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight'; - document.getElementById(this.id + '-anchor').style.color = 'highlighttext'; - document.getElementById(this.id + '-anchor').focus(); -} - -WebFXTreeAbstractNode.prototype.blur = function() { - if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; } - document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent'; - document.getElementById(this.id + '-anchor').style.color = 'menutext'; -} - -WebFXTreeAbstractNode.prototype.doExpand = function() { - if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; } - if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; } - this.open = true; - webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1'); -} - -WebFXTreeAbstractNode.prototype.doCollapse = function() { - if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; } - if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; } - this.open = false; - webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0'); -} - -WebFXTreeAbstractNode.prototype.expandAll = function() { - this.expandChildren(); - if ((this.folder) && (!this.open)) { this.expand(); } -} - -WebFXTreeAbstractNode.prototype.expandChildren = function() { - for (var i = 0; i < this.childNodes.length; i++) { - this.childNodes[i].expandAll(); -} } - -WebFXTreeAbstractNode.prototype.collapseAll = function() { - if ((this.folder) && (this.open)) { this.collapse(); } - this.collapseChildren(); -} - -WebFXTreeAbstractNode.prototype.collapseChildren = function() { - for (var i = 0; i < this.childNodes.length; i++) { - this.childNodes[i].collapseAll(); -} } - -WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) { - /* - * Since we only want to modify items one level below ourself, - * and since the rightmost indentation position is occupied by - * the plus icon we set this to -2 - */ - if (lvl == null) { lvl = -2; } - var state = 0; - for (var i = this.childNodes.length - 1; i >= 0 ; i--) { - state = this.childNodes[i].indent(lvl + 1, del, last, level); - if (state) { return; } - } - if (del) { - if (level >= this._level) { - if (this.folder) { - document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon; - this.plusIcon = webFXTreeConfig.lPlusIcon; - this.minusIcon = webFXTreeConfig.lMinusIcon; - } - else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; } - return 1; - } - } - var foo = document.getElementById(this.id + '-indent-' + lvl); - if (foo) { - if ((del) && (last)) { foo._last = true; } - if (foo._last) { foo.src = webFXTreeConfig.blankIcon; } - else { foo.src = webFXTreeConfig.iIcon; } - } - return 0; -} - -/* - * WebFXTree class - */ - -function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) { - this.base = WebFXTreeAbstractNode; - this.base(sText, sAction); - this.icon = sIcon || webFXTreeConfig.rootIcon; - this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon; - /* Defaults to open */ - this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true; - this.folder = true; - this.rendered = false; - if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; } - this.targetWindow = 'right'; -} - -WebFXTree.prototype = new WebFXTreeAbstractNode; - -WebFXTree.prototype.setBehavior = function (sBehavior) { - webFXTreeHandler.behavior = sBehavior; -}; - -WebFXTree.prototype.getBehavior = function (sBehavior) { - return webFXTreeHandler.behavior; -}; - -WebFXTree.prototype.getSelected = function() { - if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; } - else { return null; } -} - -WebFXTree.prototype.remove = function() { } - -WebFXTree.prototype.expand = function() { - this.doExpand(); -} - -WebFXTree.prototype.collapse = function() { - this.focus(); - this.doCollapse(); -} - -WebFXTree.prototype.getFirst = function() { - return null; -} - -WebFXTree.prototype.getLast = function() { - return null; -} - -WebFXTree.prototype.getNextSibling = function() { - return null; -} - -WebFXTree.prototype.getPreviousSibling = function() { - return null; -} - -WebFXTree.prototype.keydown = function(key) { - if (key == 39) { this.expand(); return false; } - if (key == 37) { this.collapse(); return false; } - if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; } - return true; -} - -WebFXTree.prototype.toString = function() { - var str = "
"; - str += "" + this.text + "
"; - str += "
"; - for (var i = 0; i < this.childNodes.length; i++) { - str += this.childNodes[i].toString(i, this.childNodes.length); - } - str += "
"; - this.rendered = true; - return str; -}; - -/* - * WebFXTreeItem class - */ - -function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) { - this.base = WebFXTreeAbstractNode; - this.base(sText, sAction); - /* Defaults to close */ - this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false; - if (eParent) { eParent.add(this); } - if (sIcon) { this.icon = sIcon; } - if (sOpenIcon) { this.openIcon = sOpenIcon; } -} - -WebFXTreeItem.prototype = new WebFXTreeAbstractNode; - -WebFXTreeItem.prototype.remove = function() { - var parentNode = this.parentNode; - var prevSibling = this.getPreviousSibling(true); - var nextSibling = this.getNextSibling(true); - var folder = this.parentNode.folder; - var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true; - this.getPreviousSibling().focus(); - this._remove(); - if (parentNode.childNodes.length == 0) { - parentNode.folder = false; - parentNode.open = false; - } - if (last) { - if (parentNode.id == prevSibling.id) { - document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon; - } - else { } - } - if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) { - parentNode.indent(null, true, last, this._level); - } - if (document.getElementById(prevSibling.id + '-plus')) { - if (nextSibling) { - if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; } - else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; } - } - else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; } - } -} - -WebFXTreeItem.prototype._remove = function() { - for (var i = this.childNodes.length - 1; i >= 0; i--) { - this.childNodes[i]._remove(); - } - for (var i = 0; i < this.parentNode.childNodes.length; i++) { - if (this.id == this.parentNode.childNodes[i].id) { - for (var j = i; j < this.parentNode.childNodes.length; j++) { - this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1] - } - this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1; - if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; } - } - } - webFXTreeHandler.all[this.id] = null; - if (document.getElementById(this.id)) { - document.getElementById(this.id).innerHTML = ""; - document.getElementById(this.id).removeNode(); - } -} - -WebFXTreeItem.prototype.expand = function() { - this.doExpand(); - document.getElementById(this.id + '-plus').src = this.minusIcon; -} - -WebFXTreeItem.prototype.collapse = function() { - this.focus(); - this.doCollapse(); - document.getElementById(this.id + '-plus').src = this.plusIcon; -} - -WebFXTreeItem.prototype.getFirst = function() { - return this.childNodes[0]; -} - -WebFXTreeItem.prototype.getLast = function() { - if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); } - else { return this.childNodes[this.childNodes.length - 1]; } -} - -WebFXTreeItem.prototype.getNextSibling = function() { - for (var i = 0; i < this.parentNode.childNodes.length; i++) { - if (this == this.parentNode.childNodes[i]) { break; } - } - if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); } - else { return this.parentNode.childNodes[i]; } -} - -WebFXTreeItem.prototype.getPreviousSibling = function(b) { - for (var i = 0; i < this.parentNode.childNodes.length; i++) { - if (this == this.parentNode.childNodes[i]) { break; } - } - if (i == 0) { return this.parentNode; } - else { - if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); } - else { return this.parentNode.childNodes[i]; } -} } - -WebFXTreeItem.prototype.keydown = function(key) { - if ((key == 39) && (this.folder)) { - if (!this.open) { this.expand(); return false; } - else { this.getFirst().select(); return false; } - } - else if (key == 37) { - if (this.open) { this.collapse(); return false; } - else { this.parentNode.select(); return false; } - } - else if (key == 40) { - if (this.open) { this.getFirst().select(); return false; } - else { - var sib = this.getNextSibling(); - if (sib) { sib.select(); return false; } - } } - else if (key == 38) { this.getPreviousSibling().select(); return false; } - return true; -} - -WebFXTreeItem.prototype.toString = function (nItem, nItemCount) { - var foo = this.parentNode; - var indent = ''; - if (nItem + 1 == nItemCount) { this.parentNode._last = true; } - var i = 0; - while (foo.parentNode) { - foo = foo.parentNode; - indent = "" + indent; - i++; - } - this._level = i; - if (this.childNodes.length) { this.folder = 1; } - else { this.open = false; } - if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) { - if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; } - if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; } - } - else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; } - var label = this.text; - label = label.replace('<', '<'); - label = label.replace('>', '>'); - var str = "
"; - str += indent; - str += "" - str += "" + label + "
"; - str += "
"; - for (var i = 0; i < this.childNodes.length; i++) { - str += this.childNodes[i].toString(i,this.childNodes.length); - } - str += "
"; - this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon); - this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon); - return str; -} \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/media/lib/tab.webfx.css b/src/googleTranslate-1.7/docs/media/lib/tab.webfx.css deleted file mode 100644 index 337fd8a8..00000000 --- a/src/googleTranslate-1.7/docs/media/lib/tab.webfx.css +++ /dev/null @@ -1,86 +0,0 @@ -/* - -bright: rgb(234,242,255); -normal: rgb(120,172,255); -dark: rgb(0,66,174); - -*/ - - - - -.dynamic-tab-pane-control.tab-pane { - position: relative; - width: 100%; -} - -.dynamic-tab-pane-control .tab-row .tab { - font-family: Verdana, Helvetica, Arial; - font-size: 12px; - cursor: Default; - display: inline; - margin: 1px -5px 1px 5px; - float: left; - padding: 3px 6px 3px 6px; - background: rgb(234,242,255); - border: 1px solid; - border-color: rgb(120,172,255); - border-left: 0; - border-bottom: 0; - border-top: 0; - - cursor: hand; - cursor: pointer; - - z-index: 1; - position: relative; - top: 0; -} - -.dynamic-tab-pane-control .tab-row .tab.selected { - border: 1px solid rgb(120,172,255); - border-bottom: 0; - z-index: 3; - padding: 2px 6px 5px 6px; - margin: 1px -6px -2px 0px; - top: -2px; - background: white; -} - -.dynamic-tab-pane-control .tab-row .tab a { - font-family: Verdana, Helvetica, Arial; - font-size: 13px; - color: rgb(0,66,174); - text-decoration: none; - cursor: hand; - cursor: pointer; -} - -.dynamic-tab-pane-control .tab-row .hover a { - color: rgb(0,66,174); -} - -.dynamic-tab-pane-control .tab-row .tab.selected a { - font-weight: bold; -} - -.dynamic-tab-pane-control .tab-page { - clear: both; - border: 1px solid rgb(120,172,255); - background: White; - z-index: 2; - position: relative; - top: -2px; - color: Black; - font-family: Verdana, Helvetica, Arial; - font-size: 13px; - padding: 10px; -} - -.dynamic-tab-pane-control .tab-row { - z-index: 1; - white-space: nowrap; - background: rgb(234,242,255); - height: 1.85em; - width: 100%; -} diff --git a/src/googleTranslate-1.7/docs/media/lib/tabpane.js b/src/googleTranslate-1.7/docs/media/lib/tabpane.js deleted file mode 100644 index f1418bee..00000000 --- a/src/googleTranslate-1.7/docs/media/lib/tabpane.js +++ /dev/null @@ -1,308 +0,0 @@ -/* - * Tab Pane - * - * This script was created by Erik Arvidsson (erik(at)eae.net) - * for WebFX (http://webfx.eae.net) - * Copyright 2002 - * - * For usage see license at http://webfx.eae.net/license.html - * - * Version: 1.0 - * Created: 2002-01-?? First working version - * Updated: 2002-02-17 Cleaned up for 1.0 public version - * - * Dependencies: *.css - a css file to define the layout - * - */ - - -// This function is used to define if the browser supports the needed -// features -function hasSupport() { - - if (typeof hasSupport.support != "undefined") - return hasSupport.support; - - var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent ); - - hasSupport.support = ( typeof document.implementation != "undefined" && - document.implementation.hasFeature( "html", "1.0" ) || ie55 ) - - // IE55 has a serious DOM1 bug... Patch it! - if ( ie55 ) { - document._getElementsByTagName = document.getElementsByTagName; - document.getElementsByTagName = function ( sTagName ) { - if ( sTagName == "*" ) - return document.all; - else - return document._getElementsByTagName( sTagName ); - }; - } - - return hasSupport.support; -} - -/////////////////////////////////////////////////////////////////////////////////// -// The constructor for tab panes -// -// el : HTMLElement The html element used to represent the tab pane -// bUseCookie : Boolean Optional. Default is true. Used to determine whether to us -// persistance using cookies or not -// -function WebFXTabPane( el, bUseCookie ) { - if ( !hasSupport() || el == null ) return; - - this.element = el; - this.element.tabPane = this; - this.pages = []; - this.selectedIndex = null; - this.useCookie = bUseCookie != null ? bUseCookie : false; - - // add class name tag to class name - this.element.className = this.classNameTag + " " + this.element.className; - - // add tab row - this.tabRow = document.createElement( "div" ); - this.tabRow.className = "tab-row"; - el.insertBefore( this.tabRow, el.firstChild ); - - var tabIndex = 0; - if ( this.useCookie ) { - tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) ); - if ( isNaN( tabIndex ) ) - tabIndex = 0; - } - - this.selectedIndex = tabIndex; - - // loop through child nodes and add them - var cs = el.childNodes; - var n; - for (var i = 0; i < cs.length; i++) { - if (cs[i].nodeType == 1 && cs[i].className == "tab-page") { - this.addTabPage( cs[i] ); - } - } -} - -WebFXTabPane.prototype = { - - classNameTag: "dynamic-tab-pane-control", - - setSelectedIndex: function ( n ) { - if (this.selectedIndex != n) { - if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null ) - this.pages[ this.selectedIndex ].hide(); - this.selectedIndex = n; - this.pages[ this.selectedIndex ].show(); - - if ( this.useCookie ) - WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n ); // session cookie - } - }, - - getSelectedIndex: function () { - return this.selectedIndex; - }, - - addTabPage: function ( oElement ) { - if ( !hasSupport() ) return; - - if ( oElement.tabPage == this ) // already added - return oElement.tabPage; - - var n = this.pages.length; - var tp = this.pages[n] = new WebFXTabPage( oElement, this, n ); - tp.tabPane = this; - - // move the tab out of the box - this.tabRow.appendChild( tp.tab ); - - if ( n == this.selectedIndex ) - tp.show(); - else - tp.hide(); - - return tp; - } -}; - -// Cookie handling -WebFXTabPane.setCookie = function ( sName, sValue, nDays ) { - var expires = ""; - if ( nDays ) { - var d = new Date(); - d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 ); - expires = "; expires=" + d.toGMTString(); - } - - document.cookie = sName + "=" + sValue + expires + "; path=/"; -}; - -WebFXTabPane.getCookie = function (sName) { - var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" ); - var res = re.exec( document.cookie ); - return res != null ? res[3] : null; -}; - -WebFXTabPane.removeCookie = function ( name ) { - setCookie( name, "", -1 ); -}; - - - - - - - - -/////////////////////////////////////////////////////////////////////////////////// -// The constructor for tab pages. This one should not be used. -// Use WebFXTabPage.addTabPage instead -// -// el : HTMLElement The html element used to represent the tab pane -// tabPane : WebFXTabPane The parent tab pane -// nindex : Number The index of the page in the parent pane page array -// -function WebFXTabPage( el, tabPane, nIndex ) { - if ( !hasSupport() || el == null ) return; - - this.element = el; - this.element.tabPage = this; - this.index = nIndex; - - var cs = el.childNodes; - for (var i = 0; i < cs.length; i++) { - if (cs[i].nodeType == 1 && cs[i].className == "tab") { - this.tab = cs[i]; - break; - } - } - - // insert a tag around content to support keyboard navigation - var a = document.createElement( "A" ); - a.href = "javascript:void 0;"; - while ( this.tab.hasChildNodes() ) - a.appendChild( this.tab.firstChild ); - this.tab.appendChild( a ); - - - anchor = ''; - if ( document.URL.indexOf( '#' ) != -1 ) { - anchor = document.URL.substr( document.URL.indexOf( '#' ) + 1); - } - j = 0; - if ( anchor.length > 0 ) { - finalList = new Array(); - listOfAnchors = el.getElementsByTagName('A'); - for (i=0; i - - - - - - -

Packages

- - - \ No newline at end of file diff --git a/src/googleTranslate-1.7/example.php b/src/googleTranslate-1.7/example.php deleted file mode 100644 index 91452652..00000000 --- a/src/googleTranslate-1.7/example.php +++ /dev/null @@ -1,22 +0,0 @@ - -detectLanguage($test)); - -/* Translate */ -echo $gt->translate($test, "fr", "en"); - -/* Was translation successful */ -echo $gt->isSuccess(); - - - -?> \ No newline at end of file diff --git a/src/googleTranslate-1.7/googleTranslate.class.php b/src/googleTranslate-1.7/googleTranslate.class.php deleted file mode 100644 index b3b7b2fb..00000000 --- a/src/googleTranslate-1.7/googleTranslate.class.php +++ /dev/null @@ -1,424 +0,0 @@ - $this->_version, - 'q' => $this->_text, - 'langpair' => $this->_fromLang . "|" . $this->_toLang); - } - elseif($type == self::DETECT) - { - $fields = array('v' => $this->_version, - 'q' => $this->_text); - } - - if($this->_apiKey != "") $fields['key'] = $this->_apiKey; - if($this->_ip != "") $fields['userip'] = $this->_ip; - - $this->_postFields = http_build_query($fields, '', "&"); - } - - - /** - * Process the built query using cURL and POST - * - * @param string POST fields - * @return string response - */ - private function _remoteQuery($query) - { - if(!function_exists('curl_init')) - { - return ""; - } - - /* Setup CURL and its options*/ - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL,$this->_googleTranslateUrl); - curl_setopt($ch, CURLOPT_REFERER, $this->_siteUrl); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_TIMEOUT, 15); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, $query); - - $response = curl_exec($ch); - - return $response; - } - - - /** - * Process the built query using cURL and GET - * - * @param string GET fields - * @return string response - */ - private function _remoteQueryDetect($query) - { - if(!function_exists('curl_init')) - { - return ""; - } - - $ch = curl_init(); - $url = $this->_googleDetectUrl . "?" . $query; - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_REFERER, $this->_siteUrl); - - $response = curl_exec($ch); - return $response; - } - - - /** - * Self test the class - * - * @return boolean - */ - public function selfTest() - { - if(!function_exists('curl_init')) - { - echo "cURL not installed."; - } - else - { - $testText = $this->translate("hello", "fr", "en"); - echo ($testText == "bonjour") ? "Test Ok." : "Test Failed."; - } - } - - /** - * Check if the last translation was a success - * - * @return boolean - */ - public function isSuccess() - { - return $this->_success; - } - - /** - * Get the last generated service error - * - * @return String - */ - public function getLastError() - { - return $this->_serviceError; - } - - - /** - * Get the detected source language, if the source is not provided - * during query - * - * @return String - */ - public function getDetectedSource() - { - return $this->_detectedSourceLanguage; - } - - - /** - * Set credentials (optional) when accessing Google translation services - * - * @param string $apiKey your google api key - */ - public function setCredentials($apiKey, $ip) - { - $this->_apiKey = $apiKey; - $this->_ip = $ip; - } - - - /** - * Set Referrer header - * - * @param string $siteUrl your website url - */ - public function setReferrer($siteUrl) - { - $this->_siteUrl = $siteUrl; - } - - - /** - * Translate the given text - * @param string $text text to translate - * @param string $to language to translate to - * @param string $from optional language to translate from - * @return boolean | string - */ - public function translate($text = '', $to, $from = '') - { - $this->_success = false; - - if($text == '' || $to == '') - { - return false; - } - else - { - if($this->_chunks == 0) - { - $this->_chunks = str_split($text, $this->_stringLimit); - $this->_totalChunks = count($this->_chunks); - $this->_currentChunk = 0; - - $this->_text = $this->_chunks[$this->_currentChunk]; - $this->_toLang = $to; - $this->_fromLang = $from; - } - else - { - $this->_text = $text; - $this->_toLang = $to; - $this->_fromLang = $from; - } - } - - $this->_composeUrl(self::TRANSLATE); - - if($this->_text != '' && $this->_postFields != '') - { - $contents = $this->_remoteQuery($this->_postFields); - $json = json_decode($contents, true); - - if($json['responseStatus'] == 200) - { - $this->translatedText .= $json['responseData']['translatedText']; - if(isset($json['responseData']['detectedSourceLanguage'])) - { - $this->_detectedSourceLanguage = $json['responseData']['detectedSourceLanguage']; - } - - $this->_currentChunk++; - - if($this->_currentChunk >= $this->_totalChunks) { - $this->_success = true; - return $this->translatedText; - } - else { - return $this->translate($this->_chunks[$this->_currentChunk], $to, $from); - } - - } - else - { - $this->_serviceError = $json['responseDetails']; - return false; - } - } - else - { - return false; - } - } - - /** - * Detect the language of the given text - * @param string $text text language to detect - * @return boolean | string - */ - public function detectLanguage($text) - { - - if($text == '') - { - return false; - } - else - { - $this->_text = $text; - } - - - $this->_composeUrl(self::DETECT); - - if($this->_text != '' && $this->_postFields != '') - { - - $contents = $this->_remoteQueryDetect($this->_postFields); - $json = json_decode($contents, true); - - if($json['responseStatus'] == 200) - { - return $json['responseData']; - } - else - { - $this->_serviceError = $json['responseDetails']; - return false; - } - } - else - { - return false; - } - - } - -} - - -?> \ No newline at end of file diff --git a/test/Sifo/I18NTest.php b/test/Sifo/I18NTest.php new file mode 100644 index 00000000..d3a75fff --- /dev/null +++ b/test/Sifo/I18NTest.php @@ -0,0 +1,29 @@ +rootDir = realpath(dir('.')->path); + if (false === defined('ROOT_PATH')) { + define('ROOT_PATH', $this->rootDir); + } + Bootstrap::$instance = 'example'; + I18N::setDomain('messages', 'en_US', 'example'); + } + + public function testGetExistingTranslation(): void + { + I18N::getInstance('messages', 'en_US'); + $translation = I18N::getTranslation('%1 is in da house, kind\'a funny uh?', ['%1' => 'koldo']); + + $this->assertSame('The developer koldo is behind the scenes, serious work on progress...', $translation); + } +}