1. Go to this page and download the library: Download matecat/subfiltering library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
matecat / subfiltering example snippets
use Matecat\SubFiltering\MateCatFilter;
// Optional parameters:
// - $dispatcher (EventDispatcherInterface|null): PSR-14 event dispatcher for pipeline events (default: null)
// - $source (string): source language (e.g., 'en-US')
// - $target (string): target language (e.g., 'it-IT')
// - $dataRefMap (array): map for XLIFF 2 dataRef replacement (see section below)
$filter = MateCatFilter::getInstance(null, 'it-IT', 'en-US', []);
use Matecat\SubFiltering\MateCatFilter;
$dataRefMap = [
'source1' => '${AMOUNT}',
'source2' => '${RIDER}',
];
$filter = MateCatFilter::getInstance(null, 'en-US', 'it-IT', $dataRefMap);
// When converting to Layer 2 (UI), the filter will:
// - add equiv-text to <ph>/<sc>/<ec> using the map
// - convert <pc> ranges to UI placeholders with originalData captured
// When converting back to Layer 1/0, it restores the original XLIFF tags.
use Matecat\SubFiltering\MateCatFilter;
$filter = MateCatFilter::getInstance(null, 'en-US', 'de-DE', []);
$layer0 = 'Text with <ph id="1" equiv-text="&lt;br/&gt;"/> and placeholders.';
// Prepare for MT/TM
$layer1 = $filter->fromLayer0ToLayer1($layer0);
// 'Text with <ph id="mtc_1" ctype="x-original_ph" x-orig="PHBoIGlkPSIxIiBlcXVpdi10ZXh0PSImbHQ7YnIvJmd0OyIvPg==" equiv-text="base64:Jmx0O2JyLyZndDs="/> and placeholders.'
// ... send $layer1 to MT/TM and get $translatedLayer1 back ...
// Restore for DB
$layer0Restored = $filter->fromLayer1ToLayer0($layer1);
use Matecat\SubFiltering\MateCatFilter;
use Matecat\SubFiltering\Enum\InjectableFiltersTags;
// Example 1: enable only a subset of supported injectable handlers.
// Only handlers known to the sorter will be kept and ordered.
$filter = MateCatFilter::getInstance(
null, // no event dispatcher
'en-US',
'it-IT',
[], // dataRef map
[
InjectableFiltersTags::markup, // supported
InjectableFiltersTags::single_curly, // supported (disabled by default, but its injection is allowed and thus, enabled here)
'foobar' // any unsupported class would be ignored
]
);
$input = 'You have {NUM_RESULTS, plural, =0 {no results} one {1 result} other {# results}} for "{SEARCH_TERM}".';
// 'You have {NUM_RESULTS, plural, =0 {no results} one {1 result} other {# results}} for "<ph id="mtc_1" ctype="x-curly-brackets" equiv-text="base64:e1NFQVJDSF9URVJNfQ=="/>".'
$l1 = $filter->fromLayer0ToLayer1($input);
$l2 = $filter->fromLayer0ToLayer2($input);
use Matecat\SubFiltering\MateCatFilter;
// Example 2: disable all injectable handlers by passing null.
// Only the fixed, non-injectable pipeline steps will run.
$filterNoInjectables = MateCatFilter::getInstance(
null, // no event dispatcher
'en-US',
'it-IT',
[],
null // no injectable handlers
);
$string = 'This is &lt;b&gt;bold&lt;/b&gt; text.';
$l1_no = $filterNoInjectables->fromLayer0ToLayer1($string);
// 'This is &lt;b&gt;bold&lt;/b&gt; text.'
$l2_no = $filterNoInjectables->fromLayer0ToLayer2($string);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.