Weglot
        
        extends AbstractOutputBufferPlugin
    
    
            
            in package
            
        
    
    
    
Weglot Output Buffering compatibility.
Tags
Table of Contents
Constants
- HTML_TAG_IGNORE = '<ignore-me-completely %s></ignore-me-completely>'
- Our plugin does in general support JSON, but it slows down the site extremely, let's do this hacky with a single HTML string.
- HTML_TAG_KEEP = 'keep-me'
- Wrap the complete string within a HTML tag so our plugin can extract it correctly and handles it as HTML.
- MARKER_SPLIT_TRANSLATION_ENTRY = 'splitTranslationEntry'
- MARKER_WRAP_ARRAY_TO_HTML = 'wrapArrayToHtml-'
- TEMPORARY_TEXT_DOMAIN_PREFIX = 'multilingual-temporary-text-domain'
Properties
- $currentTranslationEntries : mixed
- Current translations hold as an instance.
- $findI18nKeyOfTranslationCache : mixed
- $lockCurrentTranslations : mixed
- $splitTranslationEntriesCache : SplObjectStorage<Translation_Entry, array<string|int, Translation_Entry>>
- Cache for split translation entries.
- $domain : string
- Use this as text domain for translations. E. g. `post_title` is automatically passed while duplicating a post to another language.
- $localesBeforeSwitch : array<string|int, string>
- List of locales before switching locale via `switchToLanguage`.
- $moFile : mixed
- $overrideClass : mixed
- $sync : Sync
- The sync instance for this plugin.
- $temporaryTextDomain : TemporaryTextDomain
- Temporary text domain, if given.
Methods
- __construct() : mixed
- C'tor.
- createTemporaryTextDomain() : mixed
- Create a temporary text domain.
- determineImplementation() : AbstractLanguagePlugin
- Determine implementation class.
- disableCopyAndSync() : mixed
- Disable sync mechanism of our language plugin as it is handled by `Sync.php`.
- filterWithExistingTranslatedTextDomain() : mixed
- Filter a list of locales and check if translations from a PO/MO file exists.
- findI18nKeyOfTranslation() : mixed
- The same as `findI18nKeyOfTranslationRaw`, but with caching enabled as this could be called very often.
- findI18nKeyOfTranslationRaw() : mixed
- Find an i18n key for `__()` from a given translated string.
- getActiveCountriesFlags() : mixed
- Get the flags of all active languages.
- getActiveLanguages() : mixed
- getCountryFlag() : mixed
- getCurrentLanguage() : mixed
- getCurrentLanguageFallback() : mixed
- Get current language or fallback to default language when the multilingual is in a state like "Show all languages" (option known in the admin toolbar).
- getCurrentPostId() : int
- Get current id of passed post id and fallback to passed id, when no translation found.
- getCurrentTermId() : int
- Get current id of passed term id and fallback to `0` when not translation found.
- getDefaultLanguage() : mixed
- getLanguageSwitcher() : mixed
- getLocalesBeforeSwitch() : mixed
- List of locales before switching locale via `switchToLanguage`.
- getOriginalPostId() : int
- Get original id of passed post id.
- getOriginalTermId() : int
- Get original id of passed term id.
- getOverrideClassInstance() : mixed
- Get an instance of the `overrideClass`.
- getPermalink() : mixed
- getPostLanguage() : string
- Get language of passed post id.
- getPostTranslationIds() : array<string|int, int>
- Get all translations of a given post type.
- getSkipHTMLForTag() : mixed
- getSync() : mixed
- Get `Sync` instance for this plugin. Can be `null` if not given.
- getTaxonomyTranslationIds() : array<string|int, int>
- Get all translations of a given taxonomy.
- getTemporaryTextDomainName() : mixed
- Get the current temporary text domain name which can be used for `__` when e.g. inside `switchToLanguage`.
- getTranslatedName() : mixed
- getWordPressCompatibleLanguageCode() : mixed
- isActive() : mixed
- Is a multilingual plugin active?
- isCurrentlyInEditorPreview() : mixed
- isPresent() : mixed
- Check if Weglot is active.
- iterateAllLanguagesContext() : mixed
- Iterate all language contexts.
- iterateOtherLanguagesContext() : mixed
- Iterate all other languages than current one and get their context.
- lockCurrentTranslations() : mixed
- Do not allow to take another snapshot of current translations.
- maybePersistTranslation() : mixed
- rest_prepare_post() : mixed
- Add a `multilingual` section to a given post type.
- rest_prepare_taxonomy() : mixed
- Add a `multilingual` section to a given taxonomy.
- setSync() : mixed
- Set `Sync` instance for this plugin. Can be `null` if not given.
- snapshotCurrentTranslations() : mixed
- Snapshot the current translations.
- splitTranslationEntries() : mixed
- Split a translation entry key into multiple parts. This is useful when using e.g. TranslatePress and we need to find translations from MO file which is divided into multiple "parts" like `<strong>Text</strong>: Another text`.
- switch() : mixed
- switchToLanguage() : mixed
- Open given language and get their context. Context = switch to the language.
- teardownTemporaryTextDomain() : mixed
- Teardown the known temporary text domain.
- translatableStrings() : mixed
- translateArray() : array<string|int, mixed>
- Translate a complete array to a given locale (recursively). This is mostly implemented by output buffer plugins like TranslatePress or Weglot.
- translateInput() : mixed
- Translate a given input from known translations (.po, .pot).
- translateStrings() : mixed
- unsetCurrentTranslations() : mixed
- Unset current translations.
- addWptexturizeToContent() : mixed
- TranslatePress does currently not support wptexturize, so we need to map it accordingly. Use this in conjunction with `remapWptexturizeFromContent`.
- getLanguageService() : Language_Service_Weglot
- Get the `Language_Service_Weglot` instance.
- getTranslateService() : Translate_Service_Weglot
- Get the `Translate_Service_Weglot` instance.
- mapInnerTextWithIdToOriginalString() : mixed
- Map the inner text with ID to the original string. See also `wrapArrayToHtml` and the `addInnerTextWithId` parameter.
- remapResultToReference() : mixed
- Remap the result to the referenced value `$content` for `translateString` method.
- remapWptexturizeFromContent() : mixed
- Remap the wptexturized strings back to the original strings if there is a translation. Use this before `remapResultToReference`.
- translateStringFromMo() : array<string|int, mixed>
- Translate string from `.mo` file. Please consider to create a temporary text domain before!
- wrapArrayToHtml() : mixed
- Wrap a complete array to valid HTML format so output buffer plugins can translate the HTML instead of JSON. This can be useful if the plugin does not support it well enough or JSON walker slows down the page extremely.
- wrapHtmlToArray() : mixed
- Reverse `wrapArrayToHtml` functionality.
Constants
HTML_TAG_IGNORE
Our plugin does in general support JSON, but it slows down the site extremely, let's do this hacky with a single HTML string.
    public
        mixed
    HTML_TAG_IGNORE
    = '<ignore-me-completely %s></ignore-me-completely>'
        ..
HTML_TAG_KEEP
Wrap the complete string within a HTML tag so our plugin can extract it correctly and handles it as HTML.
    public
        mixed
    HTML_TAG_KEEP
    = 'keep-me'
    
    
    
MARKER_SPLIT_TRANSLATION_ENTRY
    public
        mixed
    MARKER_SPLIT_TRANSLATION_ENTRY
    = 'splitTranslationEntry'
    
    
    
MARKER_WRAP_ARRAY_TO_HTML
    public
        mixed
    MARKER_WRAP_ARRAY_TO_HTML
    = 'wrapArrayToHtml-'
    
    
    
TEMPORARY_TEXT_DOMAIN_PREFIX
    public
        mixed
    TEMPORARY_TEXT_DOMAIN_PREFIX
    = 'multilingual-temporary-text-domain'
    
    
    
Properties
$currentTranslationEntries
Current translations hold as an instance.
    protected
        mixed
    $currentTranslationEntries
     = null
    
    
    
$findI18nKeyOfTranslationCache
    protected
        mixed
    $findI18nKeyOfTranslationCache
     = []
    
    
    
$lockCurrentTranslations
    protected
        mixed
    $lockCurrentTranslations
     = false
    
    
    
$splitTranslationEntriesCache
Cache for split translation entries.
    protected
        SplObjectStorage<Translation_Entry, array<string|int, Translation_Entry>>
    $splitTranslationEntriesCache
     = []
    
    
    
$domain
Use this as text domain for translations. E. g. `post_title` is automatically passed while duplicating a post to another language.
    private
        string
    $domain
    
    
    
    
$localesBeforeSwitch
List of locales before switching locale via `switchToLanguage`.
    private
        array<string|int, string>
    $localesBeforeSwitch
     = []
    
    
    
$moFile
    private
        mixed
    $moFile
    
    
    
    
$overrideClass
    private
        mixed
    $overrideClass
    
    
    
    
$sync
The sync instance for this plugin.
    private
        Sync
    $sync
    
    
    
    
$temporaryTextDomain
Temporary text domain, if given.
    private
        TemporaryTextDomain
    $temporaryTextDomain
     = null
    
    
    
Methods
__construct()
C'tor.
    public
                    __construct(string $domain[, string $moFile = null ][, mixed $overrideClass = null ]) : mixed
    Parameters
- $domain : string
- 
                    Original text domain where post_titleand so on are translated
- $moFile : string = null
- 
                    Needed for TemporaryTextDomain. E. g./var/www/html/wp-content/plugins/real-cookie-banner/languages/real-cookie-banner-%s.mo
- $overrideClass : mixed = null
- 
                    A class with a getPotLanguagesmethod
Tags
createTemporaryTextDomain()
Create a temporary text domain.
    public
                    createTemporaryTextDomain(string $locale[, bool $force = false ]) : mixed
    Parameters
- $locale : string
- $force : bool = false
determineImplementation()
Determine implementation class.
    public
            static        determineImplementation([string $domain = '' ][, string $moFile = null ][, mixed $overrideClass = null ]) : AbstractLanguagePlugin
    Parameters
- $domain : string = ''
- $moFile : string = null
- 
                    Needed for TemporaryTextDomain. E. g./var/www/html/wp-content/plugins/real-cookie-banner/languages/real-cookie-banner-%s.mo
- $overrideClass : mixed = null
- 
                    A class with a overridemethod (arguments:locale)
Return values
AbstractLanguagePlugindisableCopyAndSync()
Disable sync mechanism of our language plugin as it is handled by `Sync.php`.
    public
    abstract                disableCopyAndSync(Sync $sync) : mixed
    Parameters
- $sync : Sync
filterWithExistingTranslatedTextDomain()
Filter a list of locales and check if translations from a PO/MO file exists.
    public
                    filterWithExistingTranslatedTextDomain(array<string|int, string> $locales[, array<string|int, string> $skip = [] ]) : mixed
    Parameters
- $locales : array<string|int, string>
- $skip : array<string|int, string> = []
- 
                    Allows to skip locales and they will never be in the result, e.g. minimal translations; the codes need to be compatible with the WordPress locale format. 
findI18nKeyOfTranslation()
The same as `findI18nKeyOfTranslationRaw`, but with caching enabled as this could be called very often.
    public
                    findI18nKeyOfTranslation(string $input, bool &$found, array<string|int, string> &$contexts) : mixed
    Parameters
- $input : string
- $found : bool
- $contexts : array<string|int, string>
findI18nKeyOfTranslationRaw()
Find an i18n key for `__()` from a given translated string.
    public
                    findI18nKeyOfTranslationRaw(string $input, bool &$found, array<string|int, string> &$contexts) : mixed
    Parameters
- $input : string
- $found : bool
- 
                    Sets to truewhen a translation got found
- $contexts : array<string|int, string>
getActiveCountriesFlags()
Get the flags of all active languages.
    public
                    getActiveCountriesFlags() : mixed
    getActiveLanguages()
    public
                    getActiveLanguages() : mixed
    getCountryFlag()
    public
                    getCountryFlag(mixed $locale) : mixed
    Parameters
- $locale : mixed
getCurrentLanguage()
    public
                    getCurrentLanguage() : mixed
    getCurrentLanguageFallback()
Get current language or fallback to default language when the multilingual is in a state like "Show all languages" (option known in the admin toolbar).
    public
                    getCurrentLanguageFallback() : mixed
    getCurrentPostId()
Get current id of passed post id and fallback to passed id, when no translation found.
    public
    abstract                getCurrentPostId(int $id, string $post_type[, string $locale = null ]) : int
    Parameters
- $id : int
- $post_type : string
- $locale : string = null
- 
                    Get item of this language 
Return values
intgetCurrentTermId()
Get current id of passed term id and fallback to `0` when not translation found.
    public
    abstract                getCurrentTermId(int $id, string $taxonomy[, string $locale = null ]) : int
    Parameters
- $id : int
- $taxonomy : string
- $locale : string = null
- 
                    Get item of this language 
Return values
intgetDefaultLanguage()
    public
                    getDefaultLanguage() : mixed
    getLanguageSwitcher()
    public
                    getLanguageSwitcher() : mixed
    getLocalesBeforeSwitch()
List of locales before switching locale via `switchToLanguage`.
    public
                    getLocalesBeforeSwitch() : mixed
    getOriginalPostId()
Get original id of passed post id.
    public
    abstract                getOriginalPostId(int $id, string $post_type) : int
    Parameters
- $id : int
- $post_type : string
Return values
intgetOriginalTermId()
Get original id of passed term id.
    public
    abstract                getOriginalTermId(int $id, string $taxonomy) : int
    Parameters
- $id : int
- $taxonomy : string
Return values
intgetOverrideClassInstance()
Get an instance of the `overrideClass`.
    public
                    getOverrideClassInstance() : mixed
    getPermalink()
    public
                    getPermalink(mixed $url, mixed $locale) : mixed
    Parameters
- $url : mixed
- $locale : mixed
getPostLanguage()
Get language of passed post id.
    public
    abstract                getPostLanguage(int $id) : string
    Parameters
- $id : int
Return values
string —Returns empty string if no language is set or cannot be determined, otherwise the locale
getPostTranslationIds()
Get all translations of a given post type.
    public
    abstract                getPostTranslationIds(int $id, string $post_type) : array<string|int, int>
    Parameters
- $id : int
- $post_type : string
Return values
array<string|int, int>getSkipHTMLForTag()
    public
                    getSkipHTMLForTag([mixed $force = false ]) : mixed
    Parameters
- $force : mixed = false
getSync()
Get `Sync` instance for this plugin. Can be `null` if not given.
    public
                    getSync() : mixed
    getTaxonomyTranslationIds()
Get all translations of a given taxonomy.
    public
    abstract                getTaxonomyTranslationIds(int $id, string $taxonomy) : array<string|int, int>
    Parameters
- $id : int
- $taxonomy : string
Return values
array<string|int, int>getTemporaryTextDomainName()
Get the current temporary text domain name which can be used for `__` when e.g. inside `switchToLanguage`.
    public
                    getTemporaryTextDomainName() : mixed
    getTranslatedName()
    public
                    getTranslatedName(mixed $locale) : mixed
    Parameters
- $locale : mixed
getWordPressCompatibleLanguageCode()
    public
                    getWordPressCompatibleLanguageCode(mixed $locale) : mixed
    Parameters
- $locale : mixed
isActive()
Is a multilingual plugin active?
    public
                    isActive() : mixed
    isCurrentlyInEditorPreview()
    public
                    isCurrentlyInEditorPreview() : mixed
    isPresent()
Check if Weglot is active.
    public
            static        isPresent() : mixed
    iterateAllLanguagesContext()
Iterate all language contexts.
    public
                    iterateAllLanguagesContext(callable $callback[, array<string|int, string> $skip = [] ]) : mixed
    Parameters
- $callback : callable
- 
                    Arguments: $locale, $currentLanguage 
- $skip : array<string|int, string> = []
- 
                    Skip locales 
iterateOtherLanguagesContext()
Iterate all other languages than current one and get their context.
    public
                    iterateOtherLanguagesContext(callable $callback) : mixed
    Context = switch to the language.
Attention: If you are using switchToLanguage in a REST API call, please consider
to pass the _wp_http_referer parameter. E.g. TranslatePress checks if the
referer is an admin page and behaves differently.
Parameters
- $callback : callable
- 
                    Arguments: $locale, $currentLanguage 
lockCurrentTranslations()
Do not allow to take another snapshot of current translations.
    public
                    lockCurrentTranslations([bool $state = false ]) : mixed
    Parameters
- $state : bool = false
maybePersistTranslation()
    public
                    maybePersistTranslation(mixed $sourceContent, mixed $content, mixed $sourceLocale, mixed $targetLocale[, mixed $force = false ]) : mixed
    Parameters
- $sourceContent : mixed
- $content : mixed
- $sourceLocale : mixed
- $targetLocale : mixed
- $force : mixed = false
rest_prepare_post()
Add a `multilingual` section to a given post type.
    public
                    rest_prepare_post(WP_REST_Response $response, WP_Post $post, WP_REST_Request $request) : mixed
    Usage:
add_filter('rest_prepare_my_cpt', [$this->getCompLanguage(), 'rest_prepare_post'], 10, 3);
Parameters
- $response : WP_REST_Response
- $post : WP_Post
- $request : WP_REST_Request
Tags
rest_prepare_taxonomy()
Add a `multilingual` section to a given taxonomy.
    public
                    rest_prepare_taxonomy(WP_REST_Response $response, WP_Term $term, WP_REST_Request $request) : mixed
    Usage:
add_filter('rest_prepare_my_taxonomy', [$this->getCompLanguage(), 'rest_prepare_taxonomy'], 10, 3);
Parameters
- $response : WP_REST_Response
- $term : WP_Term
- $request : WP_REST_Request
Tags
setSync()
Set `Sync` instance for this plugin. Can be `null` if not given.
    public
                    setSync(Sync $sync) : mixed
    Parameters
- $sync : Sync
snapshotCurrentTranslations()
Snapshot the current translations.
    public
                    snapshotCurrentTranslations([bool $force = false ]) : mixed
    Parameters
- $force : bool = false
splitTranslationEntries()
Split a translation entry key into multiple parts. This is useful when using e.g. TranslatePress and we need to find translations from MO file which is divided into multiple "parts" like `<strong>Text</strong>: Another text`.
    public
                    splitTranslationEntries(array<string|int, Translation_Entry> &$entriesToSplit) : mixed
    Parameters
- $entriesToSplit : array<string|int, Translation_Entry>
Tags
switch()
    public
                    switch(mixed $locale) : mixed
    Parameters
- $locale : mixed
switchToLanguage()
Open given language and get their context. Context = switch to the language.
    public
                    switchToLanguage(string $locale, callable $callback) : mixed
    Attention: If you are using switchToLanguage in a REST API call, please consider
to pass the _wp_http_referer parameter. E.g. TranslatePress checks if the
referer is an admin page and behaves differently.
Parameters
- $locale : string
- $callback : callable
- 
                    Arguments: $locale, $currentLanguage 
teardownTemporaryTextDomain()
Teardown the known temporary text domain.
    public
                    teardownTemporaryTextDomain() : mixed
    translatableStrings()
    public
                    translatableStrings(mixed $content) : mixed
    Parameters
- $content : mixed
translateArray()
Translate a complete array to a given locale (recursively). This is mostly implemented by output buffer plugins like TranslatePress or Weglot.
    public
                    translateArray(array<string|int, mixed> $content[, array<string|int, string> $skipKeys = [] ][, string $locale = null ][, array<string|int, string> $context = null ]) : array<string|int, mixed>
    Parameters
- $content : array<string|int, mixed>
- $skipKeys : array<string|int, string> = []
- $locale : string = null
- $context : array<string|int, string> = null
Return values
array<string|int, mixed>translateInput()
Translate a given input from known translations (.po, .pot).
    public
                    translateInput(string $input[, array<string|int, string> $contexts = null ]) : mixed
    Parameters
- $input : string
- $contexts : array<string|int, string> = null
translateStrings()
    public
                    translateStrings(mixed &$content, mixed $locale[, mixed $context = null ]) : mixed
    Parameters
- $content : mixed
- $locale : mixed
- $context : mixed = null
unsetCurrentTranslations()
Unset current translations.
    public
                    unsetCurrentTranslations() : mixed
    addWptexturizeToContent()
TranslatePress does currently not support wptexturize, so we need to map it accordingly. Use this in conjunction with `remapWptexturizeFromContent`.
    protected
                    addWptexturizeToContent(array<string|int, string> &$content) : mixed
    Parameters
- $content : array<string|int, string>
getLanguageService()
Get the `Language_Service_Weglot` instance.
    protected
                    getLanguageService() : Language_Service_Weglot
    Return values
Language_Service_WeglotgetTranslateService()
Get the `Translate_Service_Weglot` instance.
    protected
                    getTranslateService() : Translate_Service_Weglot
    Return values
Translate_Service_WeglotmapInnerTextWithIdToOriginalString()
Map the inner text with ID to the original string. See also `wrapArrayToHtml` and the `addInnerTextWithId` parameter.
    protected
                    mapInnerTextWithIdToOriginalString(array<string|int, string> $translatableStrings, array<string|int, string> $content, array<string|int, array<string|int, string>> &$result) : mixed
    Parameters
- $translatableStrings : array<string|int, string>
- $content : array<string|int, string>
- $result : array<string|int, array<string|int, string>>
remapResultToReference()
Remap the result to the referenced value `$content` for `translateString` method.
    protected
                    remapResultToReference(array<string|int, string> &$content, array<string|int, string> $result, string $locale[, array<string|int, string> $context = null ]) : mixed
    Parameters
- $content : array<string|int, string>
- $result : array<string|int, string>
- $locale : string
- $context : array<string|int, string> = null
remapWptexturizeFromContent()
Remap the wptexturized strings back to the original strings if there is a translation. Use this before `remapResultToReference`.
    protected
                    remapWptexturizeFromContent(int $contentCount, array<string|int, string> &$content, array<string|int, string> &$result) : mixed
    Parameters
- $contentCount : int
- $content : array<string|int, string>
- $result : array<string|int, string>
translateStringFromMo()
Translate string from `.mo` file. Please consider to create a temporary text domain before!
    protected
                    translateStringFromMo(string $content, string $targetLocale[, array<string|int, string> $context = null ]) : array<string|int, mixed>
    Parameters
- $content : string
- $targetLocale : string
- $context : array<string|int, string> = null
Return values
array<string|int, mixed> —[$found: boolean, $content: string]
wrapArrayToHtml()
Wrap a complete array to valid HTML format so output buffer plugins can translate the HTML instead of JSON. This can be useful if the plugin does not support it well enough or JSON walker slows down the page extremely.
    protected
                    wrapArrayToHtml(array<string|int, string> $content[, bool $addInnerTextWithId = false ]) : mixed
    Parameters
- $content : array<string|int, string>
- $addInnerTextWithId : bool = false
- 
                    Instead of the content, the inner text will be in format <div>wrapArrayToHtml-{id}</div><div>{content}</div>. This allows you to map the content back to the original strings by iterating over an array of translatable strings. See alsomapInnerTextWithIdToOriginalString.
wrapHtmlToArray()
Reverse `wrapArrayToHtml` functionality.
    protected
                    wrapHtmlToArray(string $html[, callable $strip = null ]) : mixed
    Parameters
- $html : string
- $strip : callable = null