PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.17.2 4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / third-party / vendor / symfony / translation / Dumper / PoFileDumper.php
wp-user-avatar / third-party / vendor / symfony / translation / Dumper Last commit date
CsvFileDumper.php 2 months ago DumperInterface.php 2 months ago FileDumper.php 2 months ago IcuResFileDumper.php 2 months ago IniFileDumper.php 2 months ago JsonFileDumper.php 2 months ago MoFileDumper.php 2 months ago PhpFileDumper.php 2 months ago PoFileDumper.php 2 months ago QtFileDumper.php 2 months ago XliffFileDumper.php 2 months ago YamlFileDumper.php 2 months ago
PoFileDumper.php
122 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace ProfilePressVendor\Symfony\Component\Translation\Dumper;
12
13 use ProfilePressVendor\Symfony\Component\Translation\MessageCatalogue;
14 /**
15 * PoFileDumper generates a gettext formatted string representation of a message catalogue.
16 *
17 * @author Stealth35
18 */
19 class PoFileDumper extends FileDumper
20 {
21 /**
22 * {@inheritdoc}
23 */
24 public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
25 {
26 $output = 'msgid ""' . "\n";
27 $output .= 'msgstr ""' . "\n";
28 $output .= '"Content-Type: text/plain; charset=UTF-8\n"' . "\n";
29 $output .= '"Content-Transfer-Encoding: 8bit\n"' . "\n";
30 $output .= '"Language: ' . $messages->getLocale() . '\n"' . "\n";
31 $output .= "\n";
32 $newLine = \false;
33 foreach ($messages->all($domain) as $source => $target) {
34 if ($newLine) {
35 $output .= "\n";
36 } else {
37 $newLine = \true;
38 }
39 $metadata = $messages->getMetadata($source, $domain);
40 if (isset($metadata['comments'])) {
41 $output .= $this->formatComments($metadata['comments']);
42 }
43 if (isset($metadata['flags'])) {
44 $output .= $this->formatComments(implode(',', (array) $metadata['flags']), ',');
45 }
46 if (isset($metadata['sources'])) {
47 $output .= $this->formatComments(implode(' ', (array) $metadata['sources']), ':');
48 }
49 $sourceRules = $this->getStandardRules($source);
50 $targetRules = $this->getStandardRules($target);
51 if (2 == \count($sourceRules) && [] !== $targetRules) {
52 $output .= sprintf('msgid "%s"' . "\n", $this->escape($sourceRules[0]));
53 $output .= sprintf('msgid_plural "%s"' . "\n", $this->escape($sourceRules[1]));
54 foreach ($targetRules as $i => $targetRule) {
55 $output .= sprintf('msgstr[%d] "%s"' . "\n", $i, $this->escape($targetRule));
56 }
57 } else {
58 $output .= sprintf('msgid "%s"' . "\n", $this->escape($source));
59 $output .= sprintf('msgstr "%s"' . "\n", $this->escape($target));
60 }
61 }
62 return $output;
63 }
64 private function getStandardRules(string $id)
65 {
66 // Partly copied from TranslatorTrait::trans.
67 $parts = [];
68 if (preg_match('/^\|++$/', $id)) {
69 $parts = explode('|', $id);
70 } elseif (preg_match_all('/(?:\|\||[^\|])++/', $id, $matches)) {
71 $parts = $matches[0];
72 }
73 $intervalRegexp = <<<'EOF'
74 /^(?P<interval>
75 ({\s*
76 (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*)
77 \s*})
78
79 |
80
81 (?P<left_delimiter>[\[\]])
82 \s*
83 (?P<left>-Inf|\-?\d+(\.\d+)?)
84 \s*,\s*
85 (?P<right>\+?Inf|\-?\d+(\.\d+)?)
86 \s*
87 (?P<right_delimiter>[\[\]])
88 )\s*(?P<message>.*?)$/xs
89 EOF;
90 $standardRules = [];
91 foreach ($parts as $part) {
92 $part = trim(str_replace('||', '|', $part));
93 if (preg_match($intervalRegexp, $part)) {
94 // Explicit rule is not a standard rule.
95 return [];
96 } else {
97 $standardRules[] = $part;
98 }
99 }
100 return $standardRules;
101 }
102 /**
103 * {@inheritdoc}
104 */
105 protected function getExtension()
106 {
107 return 'po';
108 }
109 private function escape(string $str): string
110 {
111 return addcslashes($str, "\x00..\x1f\"\\");
112 }
113 private function formatComments($comments, string $prefix = ''): ?string
114 {
115 $output = null;
116 foreach ((array) $comments as $comment) {
117 $output .= sprintf('#%s %s' . "\n", $prefix, $comment);
118 }
119 return $output;
120 }
121 }
122