aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/pear/text_languagedetect
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/pear/text_languagedetect')
-rw-r--r--vendor/pear/text_languagedetect/.gitignore6
-rw-r--r--vendor/pear/text_languagedetect/.travis.yml14
-rw-r--r--vendor/pear/text_languagedetect/README.rst9
-rw-r--r--vendor/pear/text_languagedetect/Text/LanguageDetect.php42
-rw-r--r--vendor/pear/text_languagedetect/composer.json2
-rw-r--r--vendor/pear/text_languagedetect/docs/confidence.php18
-rw-r--r--vendor/pear/text_languagedetect/docs/errorhandling.php15
-rw-r--r--vendor/pear/text_languagedetect/docs/example_clui.php35
-rw-r--r--vendor/pear/text_languagedetect/docs/example_web.php72
-rw-r--r--vendor/pear/text_languagedetect/docs/iso.php19
-rw-r--r--vendor/pear/text_languagedetect/docs/languages.php11
-rw-r--r--vendor/pear/text_languagedetect/docs/simple.php10
-rw-r--r--vendor/pear/text_languagedetect/phpcs.xml10
13 files changed, 238 insertions, 25 deletions
diff --git a/vendor/pear/text_languagedetect/.gitignore b/vendor/pear/text_languagedetect/.gitignore
new file mode 100644
index 000000000..d83ad3973
--- /dev/null
+++ b/vendor/pear/text_languagedetect/.gitignore
@@ -0,0 +1,6 @@
+# composer related
+composer.lock
+composer.phar
+vendor
+/README.html
+/dist
diff --git a/vendor/pear/text_languagedetect/.travis.yml b/vendor/pear/text_languagedetect/.travis.yml
new file mode 100644
index 000000000..7cb79a61f
--- /dev/null
+++ b/vendor/pear/text_languagedetect/.travis.yml
@@ -0,0 +1,14 @@
+language: php
+sudo: false
+php:
+ - 7.2
+ - 7.3
+ - 7.4
+install:
+ - pear install pear/PHP_CodeSniffer
+ - composer install
+ - phpenv rehash
+script:
+ - composer validate
+ - ./vendor/bin/phpunit --coverage-text tests
+ - phpcs Text/
diff --git a/vendor/pear/text_languagedetect/README.rst b/vendor/pear/text_languagedetect/README.rst
index 9381c7f7e..15fbd87bb 100644
--- a/vendor/pear/text_languagedetect/README.rst
+++ b/vendor/pear/text_languagedetect/README.rst
@@ -155,3 +155,12 @@ Unit test status
.. image:: https://travis-ci.org/pear/Text_LanguageDetect.svg?branch=master
:target: https://travis-ci.org/pear/Text_LanguageDetect
+
+
+Notes
+=====
+Where are the data from?
+
+ I don't recall where I got the original data set.
+ It's just the frequencies of 3-letter combinations in each supported language.
+ It could be generated from a few random wikipedia pages from each language.
diff --git a/vendor/pear/text_languagedetect/Text/LanguageDetect.php b/vendor/pear/text_languagedetect/Text/LanguageDetect.php
index 420faa941..850b1beaf 100644
--- a/vendor/pear/text_languagedetect/Text/LanguageDetect.php
+++ b/vendor/pear/text_languagedetect/Text/LanguageDetect.php
@@ -12,9 +12,9 @@
* @link http://pear.php.net/package/Text_LanguageDetect/
*/
-//require_once 'Text/LanguageDetect/Exception.php';
-//require_once 'Text/LanguageDetect/Parser.php';
-//require_once 'Text/LanguageDetect/ISO639.php';
+require_once 'Text/LanguageDetect/Exception.php';
+require_once 'Text/LanguageDetect/Parser.php';
+require_once 'Text/LanguageDetect/ISO639.php';
/**
* Detects the language of a given piece of text.
@@ -189,7 +189,7 @@ class Text_LanguageDetect
*/
protected function _get_data_loc($fname)
{
- if ($fname{0} == '/' || $fname{0} == '.') {
+ if ($fname[0] == '/' || $fname[0] == '.') {
// if filename starts with a slash, assume it's an absolute pathname
// and skip whatever is in $this->_data_dir
return $fname;
@@ -247,12 +247,6 @@ class Text_LanguageDetect
protected function _checkTrigram($trigram)
{
if (!is_array($trigram)) {
- if (ini_get('magic_quotes_runtime')) {
- throw new Text_LanguageDetect_Exception(
- 'Error loading database. Try turning magic_quotes_runtime off.',
- Text_LanguageDetect_Exception::MAGIC_QUOTES
- );
- }
throw new Text_LanguageDetect_Exception(
'Language database is not an array.',
Text_LanguageDetect_Exception::DB_NOT_ARRAY
@@ -1470,31 +1464,31 @@ class Text_LanguageDetect
case 1:
// normal ASCII-7 byte
// 0xxxxxxx --> 0xxxxxxx
- return ord($char{0});
+ return ord($char[0]);
case 2:
// 2 byte unicode
// 110zzzzx 10xxxxxx --> 00000zzz zxxxxxxx
- $z = (ord($char{0}) & 0x000001F) << 6;
- $x = (ord($char{1}) & 0x0000003F);
+ $z = (ord($char[0]) & 0x000001F) << 6;
+ $x = (ord($char[1]) & 0x0000003F);
return ($z | $x);
case 3:
// 3 byte unicode
// 1110zzzz 10zxxxxx 10xxxxxx --> zzzzzxxx xxxxxxxx
- $z = (ord($char{0}) & 0x0000000F) << 12;
- $x1 = (ord($char{1}) & 0x0000003F) << 6;
- $x2 = (ord($char{2}) & 0x0000003F);
+ $z = (ord($char[0]) & 0x0000000F) << 12;
+ $x1 = (ord($char[1]) & 0x0000003F) << 6;
+ $x2 = (ord($char[2]) & 0x0000003F);
return ($z | $x1 | $x2);
case 4:
// 4 byte unicode
// 11110zzz 10zzxxxx 10xxxxxx 10xxxxxx -->
// 000zzzzz xxxxxxxx xxxxxxxx
- $z1 = (ord($char{0}) & 0x00000007) << 18;
- $z2 = (ord($char{1}) & 0x0000003F) << 12;
- $x1 = (ord($char{2}) & 0x0000003F) << 6;
- $x2 = (ord($char{3}) & 0x0000003F);
+ $z1 = (ord($char[0]) & 0x00000007) << 18;
+ $z2 = (ord($char[1]) & 0x0000003F) << 12;
+ $x1 = (ord($char[2]) & 0x0000003F) << 6;
+ $x2 = (ord($char[3]) & 0x0000003F);
return ($z1 | $z2 | $x1 | $x2);
}
}
@@ -1514,7 +1508,7 @@ class Text_LanguageDetect
*/
protected static function _next_char($str, &$counter, $special_convert = false)
{
- $char = $str{$counter++};
+ $char = $str[$counter++];
$ord = ord($char);
// for a description of the utf8 system see
@@ -1538,7 +1532,7 @@ class Text_LanguageDetect
} elseif ($ord >> 5 == 6) { // two-byte char
// multi-byte chars
- $nextchar = $str{$counter++}; // get next byte
+ $nextchar = $str[$counter++]; // get next byte
// lower-casing of non-ascii characters is still incomplete
@@ -1580,12 +1574,12 @@ class Text_LanguageDetect
} elseif ($ord >> 4 == 14) { // three-byte char
// tag on next 2 bytes
- return $char . $str{$counter++} . $str{$counter++};
+ return $char . $str[$counter++] . $str[$counter++];
} elseif ($ord >> 3 == 30) { // four-byte char
// tag on next 3 bytes
- return $char . $str{$counter++} . $str{$counter++} . $str{$counter++};
+ return $char . $str[$counter++] . $str[$counter++] . $str[$counter++];
} else {
// error?
diff --git a/vendor/pear/text_languagedetect/composer.json b/vendor/pear/text_languagedetect/composer.json
index fc94c6506..a65a17d40 100644
--- a/vendor/pear/text_languagedetect/composer.json
+++ b/vendor/pear/text_languagedetect/composer.json
@@ -27,6 +27,6 @@
"ext-mbstring": "May require the mbstring PHP extension"
},
"require-dev": {
- "phpunit/phpunit": "*"
+ "phpunit/phpunit": "8.*|9.*"
}
}
diff --git a/vendor/pear/text_languagedetect/docs/confidence.php b/vendor/pear/text_languagedetect/docs/confidence.php
new file mode 100644
index 000000000..5be0fb9b6
--- /dev/null
+++ b/vendor/pear/text_languagedetect/docs/confidence.php
@@ -0,0 +1,18 @@
+<?php
+require_once 'Text/LanguageDetect.php';
+
+$text = 'Was wäre, wenn ich Ihnen das jetzt sagen würde?';
+
+$ld = new Text_LanguageDetect();
+//3 most probable languages
+$results = $ld->detect($text, 3);
+
+foreach ($results as $language => $confidence) {
+ echo $language . ': ' . number_format($confidence, 2) . "\n";
+}
+
+//output:
+//german: 0.35
+//dutch: 0.25
+//swedish: 0.20
+?> \ No newline at end of file
diff --git a/vendor/pear/text_languagedetect/docs/errorhandling.php b/vendor/pear/text_languagedetect/docs/errorhandling.php
new file mode 100644
index 000000000..b68e42476
--- /dev/null
+++ b/vendor/pear/text_languagedetect/docs/errorhandling.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * How to handle errors
+ */
+require_once 'Text/LanguageDetect.php';
+require_once 'Text/LanguageDetect/Exception.php';
+
+try {
+ $ld = new Text_LanguageDetect();
+ $lang = $ld->detectSimple('Das ist ein kleiner Text');
+ echo "Language is: $lang\n";
+} catch (Text_LanguageDetect_Exception $e) {
+ echo 'An error occured! Message: ' . $e . "\n";
+}
+?> \ No newline at end of file
diff --git a/vendor/pear/text_languagedetect/docs/example_clui.php b/vendor/pear/text_languagedetect/docs/example_clui.php
new file mode 100644
index 000000000..210b0eec4
--- /dev/null
+++ b/vendor/pear/text_languagedetect/docs/example_clui.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * example usage (CLI)
+ *
+ * @package Text_LanguageDetect
+ * @version CVS: $Id$
+ */
+
+require_once 'Text/LanguageDetect.php';
+
+$l = new Text_LanguageDetect;
+
+$stdin = fopen('php://stdin', 'r');
+
+echo "Supported languages:\n";
+$langs = $l->getLanguages();
+sort($langs);
+echo join(', ', $langs);
+
+echo "\ntotal ", count($langs), "\n\n";
+
+while ($line = fgets($stdin)) {
+ $result = $l->detect($line, 4);
+ print_r($result);
+ $blocks = $l->detectUnicodeBlocks($line, true);
+ print_r($blocks);
+}
+
+fclose($stdin);
+unset($l);
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+?>
diff --git a/vendor/pear/text_languagedetect/docs/example_web.php b/vendor/pear/text_languagedetect/docs/example_web.php
new file mode 100644
index 000000000..bee8f51a4
--- /dev/null
+++ b/vendor/pear/text_languagedetect/docs/example_web.php
@@ -0,0 +1,72 @@
+<?php
+
+/**
+ * example usage (web)
+ *
+ * @package Text_LanguageDetect
+ * @version CVS: $Id$
+ */
+
+// browsers will encode multi-byte characters wrong unless they think the page is utf8-encoded
+header('Content-type: text/html; charset=utf-8', true);
+
+require_once 'Text/LanguageDetect.php';
+
+$l = new Text_LanguageDetect;
+if (isset($_REQUEST['q'])) {
+ $q = stripslashes($_REQUEST['q']);
+}
+
+?>
+<html>
+<head>
+<title>Text_LanguageDetect demonstration</title>
+</head>
+<body>
+<h2>Text_LanguageDetect</h2>
+<?
+echo "<small>Supported languages:\n";
+$langs = $l->getLanguages();
+sort($langs);
+foreach ($langs as $lang) {
+ echo ucfirst($lang), ', ';
+ $i++;
+}
+
+echo "<br />total $i</small><br /><br />";
+
+?>
+<form method="post">
+Enter text to identify language (at least a couple of sentences):<br />
+<textarea name="q" wrap="virtual" cols="80" rows="8"><?= $q ?></textarea>
+<br />
+<input type="submit" value="Submit" />
+</form>
+<?
+if (isset($q) && strlen($q)) {
+ $len = $l->utf8strlen($q);
+ if ($len < 20) { // this value picked somewhat arbitrarily
+ echo "Warning: string not very long ($len chars)<br />\n";
+ }
+
+ $result = $l->detectConfidence($q);
+
+ if ($result == null) {
+ echo "Text_LanguageDetect cannot identify this piece of text. <br /><br />\n";
+ } else {
+ echo "Text_LanguageDetect thinks this text is written in <b>{$result['language']}</b> ({$result['similarity']}, {$result['confidence']})<br /><br />\n";
+ }
+
+ $result = $l->detectUnicodeBlocks($q, false);
+ if (!empty($result)) {
+ arsort($result);
+ echo "Unicode blocks present: ", join(', ', array_keys($result)), "\n<br /><br />";
+ }
+}
+
+unset($l);
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+?>
+</body></html>
diff --git a/vendor/pear/text_languagedetect/docs/iso.php b/vendor/pear/text_languagedetect/docs/iso.php
new file mode 100644
index 000000000..547316313
--- /dev/null
+++ b/vendor/pear/text_languagedetect/docs/iso.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Demonstrates how to use ISO language codes.
+ *
+ * The "name mode" changes the way languages are accepted and returned.
+ */
+require_once 'Text/LanguageDetect.php';
+$ld = new Text_LanguageDetect();
+
+//will output the ISO 639-1 two-letter language code
+// "de"
+$ld->setNameMode(2);
+echo $ld->detectSimple('Das ist ein kleiner Text') . "\n";
+
+//will output the ISO 639-2 three-letter language code
+// "deu"
+$ld->setNameMode(3);
+echo $ld->detectSimple('Das ist ein kleiner Text') . "\n";
+?>
diff --git a/vendor/pear/text_languagedetect/docs/languages.php b/vendor/pear/text_languagedetect/docs/languages.php
new file mode 100644
index 000000000..f6d022c22
--- /dev/null
+++ b/vendor/pear/text_languagedetect/docs/languages.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * List all supported languages
+ */
+require_once 'Text/LanguageDetect.php';
+$ld = new Text_LanguageDetect();
+
+foreach ($ld->getLanguages() as $lang) {
+ echo $lang . "\n";
+}
+?>
diff --git a/vendor/pear/text_languagedetect/docs/simple.php b/vendor/pear/text_languagedetect/docs/simple.php
new file mode 100644
index 000000000..0bfc11eb0
--- /dev/null
+++ b/vendor/pear/text_languagedetect/docs/simple.php
@@ -0,0 +1,10 @@
+<?php
+require_once 'Text/LanguageDetect.php';
+
+$text = 'Was wäre, wenn ich Ihnen das jetzt sagen würde?';
+
+$ld = new Text_LanguageDetect();
+$result = $ld->detectSimple($text);
+var_dump($result);
+//output: german
+?>
diff --git a/vendor/pear/text_languagedetect/phpcs.xml b/vendor/pear/text_languagedetect/phpcs.xml
new file mode 100644
index 000000000..9eeccf534
--- /dev/null
+++ b/vendor/pear/text_languagedetect/phpcs.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<ruleset name="PEAR-textlanguagedetect">
+ <rule ref="PEAR">
+ <!-- we keep the old php4-style variable names for now -->
+ <exclude name="PEAR.NamingConventions.ValidFunctionName.PublicUnderscore"/>
+ <exclude name="PEAR.NamingConventions.ValidVariableName.PublicUnderscore"/>
+ <!-- we keep the method names for BC reasons -->
+ <exclude name="PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps"/>
+ </rule>
+</ruleset>