ePages 6.17.12 - DE_EPAGES/Installer/API/LangDiffBuilder.pm

Package DE_EPAGES::Installer::API::LangDiffBuilder

This module generates and changes all files necessary for language patches

@EXPORT_OK
GetTargetEncoding
PostProcessXMLFile
AddFilePrefix
ChangeStructLanguage
GetMainLanguage
ReplaceLanguageAttribute
ReplaceLanguageFileTag
IsLanguageSupported

Functions

AddFilePrefix
ChangeStructLanguage
GetMainLanguage
GetTargetEncoding
IsLanguageSupported
PostProcessXMLFile
ReplaceLanguageAttribute
ReplaceLanguageFileTag
exportReleaseFolder
exportReleaseFolders
generatePatchFiles
language
new
newVersion
oldVersion
printMessage
target
verbose

AddFilePrefix

adds a prefix to a file name in a path: /tmp/filename -> /tmp/prefixfilename/

Syntax
$NewFilePath = AddFilePrefix($FilePath, $Prefix);
Input
$FilePath (string)
full path to file
$Prefix (string)
prefix to prepend
Return
$NewFilePath (string)
file path with file name prefixed

ChangeStructLanguage

changes the language of an xml structure

Syntax
ChangeStructLanguage($Structure, $Language);
Input
$Structure (object)
xml structure to change
$Language (string)
set the structure's language to this language

GetMainLanguage

returns the main language identifier (en-US -> en)

Syntax
GetMainLanguage($LanguageIdentifier);
Example
GetMainLanguage('en-US')
Input
$Language (string)
language identifier
Return
$MainLanguage (string)
language identifier without region identifier

GetTargetEncoding

return XML encoding string for a file name

Syntax
$Encoding = GetTargetEncoding($FileName);
Input
$FileName (string)
language identifier
$Verbose (boolean)
whether to print warnings or not
Return
$Encoding (string)
encoding

IsLanguageSupported

Checks if the supplied language is supported by the Cartridge in $CartridgePath

Syntax
IsLanguageSupported($CartridgePath, $Language);
Example
IsLanguageSupported('/srv/epages/eproot/Cartridges/DE_EPAGES/Amazon', 'en')
Input
$CartridgePath (string)
folder of the cartridge
$Language (string)
the language identifier to check
Return
$Supported (boolean)
1 if the language is supported, otherwise 0

PostProcessXMLFile

unquotes <notrans>, " and '

Syntax
PostProcessXMLFile($FileName);
Input
$FileName (string)
XML file name

ReplaceLanguageAttribute

Replaces the <Language Language='xx'> attribute value in a string containing epages dictionary XML

Syntax
ReplaceLanguageAttribute($XML);
Example
ReplaceLanguageAttribute($XML, 'en')
Input
$XML (string)
string containing XML
$Language (string)
language identifier to set
Return
$XML (string)
changed XML

ReplaceLanguageFileTag

Replaces the language tag in a translation XML file name

Syntax
ReplaceLanguageFileTag($Filename, $Language);
Example
ReplaceLanguageAttribute('transimp_Dictionary.de.xml', 'en') -> transimp_Dictionary.en.xml
Input
$Filename (string)
filename to operate on
$Language (string)
the language identifier to set
Return
$Filename (string)
changed file name

exportReleaseFolder

part of step 1 export two versions of one cartridge, one tagged with old release and one tagged with the new release tag to different folders

Syntax
$self->exportReleaseFolder($CVSPath, $Dir, $Tag);
Input
$CVSPath (string)
cvs path from cartridge that should be patcht
$OldDir (string)
directory to export cartridge version tagged with $Tag
$Tag (string)
tag of cartridge, most any release tag

exportReleaseFolders

step 1 export two versions of one cartridge, one tagged with old release and one tagged with the new release tag to different folders

Syntax
$self->exportReleaseFolders($CVSPath, $OldDir, $NewDir);
Input
$CVSPath (string)
cvs path from cartridge that should be patcht
$OldDir (string)
directory to export cartridge version tagged with old release tag
$NewDir (string)
directory to export cartridge version tagged with new release tag

generatePatchFiles

step 2 - compare old and new version of cartridge - generates all patch files under ../Patches/Patch../Database/XML - (if patch files already builded, only additional tags where added manually changes with stay)

Syntax
$self->generatePatchFiles($OldFolder, $NewFolder, $CartridgeFolder);
Input
$OldFolder (string)
folder of cartridgeversion tagged with old release tag
$NewFolder (string)
folder of cartridgeversion tagged with new release tag
$CartridgeFolder (string)
folder of cartridge, where should commit

language

return object attribute language

Syntax
$self->language()
Return
$Language (string)
object attribute

new

Creates a new LangDiffBuilder object

Syntax
$LangDiffBuilder = DE_EPAGES::Installer::API::LangDiffBuilder->new(
    'OldReleaseTag' => $OldReleaseTag,
    'NewReleaseTag' => $NewReleaseTag,
    'Lang' => $Lang,
    'Target' => $Target,
    'Verbose' => 1,
);
Input
$options (hash)
keys
  • OldReleaseTag - old release tag, e.g. 'release_6_9_1'
  • NewReleaseTag - new release tag, e.g. 'release_6_9_2'
  • Lang - language to create a diff for, e.g. 'de'
  • Target - target directory for output diff files
  • Verbose - print debug information (0 or 1)

Return
$LangDiffBuilder (object)
LangDiffBuilder object

newVersion

return object attribute, new version

Syntax
my $NewVersion = $self->newVersion();
Return
$NewVersion (string)
object attribute

oldVersion

return object attribute, old version

Syntax
my $OldVersion = $self->oldVersion();
Return
$OldVersion (string)
object attribute

printMessage

print message if verbose is true

Syntax
$self->printMessage('message to test');
Input
$Message (string)
message to print

target

return object attribute target

Syntax
$self->target()
Return
$Target (string)
object attribute

verbose

return object attribute verbose

Syntax
$self->verbose()
Return
$Verbose (boolean)
object attribute