ePages 6.17.13 - DE_EPAGES/Installer/API/LanguagePack.pm

Package DE_EPAGES::Installer::API::LanguagePack

This module provides language pack handling.

Example
my $Installer = DE_EPAGES::Installer::API::LanguagePack->new(
    LanguageCode => 'es',
);
$Installer->install;
@EXPORT_OK
GetLangPackFile
GetLangPackURL
GetUsedLanguages
DictionaryXmlLocation
LanguagePackLocation
DownloadLanguagePack
UntarLanguagePack
GetLanguagesByVersion
GetLanguageVersionList

Functions

DictionaryXmlLocation
DownloadLanguagePack
GetLangPackFile
GetLangPackURL
GetLanguageVersionList
GetLanguagesByVersion
GetUsedLanguages
LanguagePackLocation
UntarLanguagePack
deleteCtmplFiles
deleteGlobalFiles
dialectCode
install
installStoreType
languageCode
new
storeName
storeType
storeTypeDir
storeTypeVersion
uninstall

DictionaryXmlLocation

Returns path to Dictionary.$Lang.xml in $hFlags->{Dir} (default: $ENV{EPAGES_CARTRIDGES}).

Syntax
$Path = DictionaryXmlLocation($Lang, $hFlags);
Example
DictionaryXmlLocation('es', { Dir => $ENV{EPAGES_CARTRIDGES} });
DictionaryXmlLocation('es');
Input
$Lang (string)
language code as 'es'
$hFlags (ref.hash)
flags
  • Dir - search in different directory than $ENV{EPAGES_CARTRIDGES}
  • IfExists - return location only if exists

Return
$Path (string)
path to Dictionary.$Lang.xml

DownloadLanguagePack

Downloads language pack from GetLangPackURL($Lang, $Version) and copies it to $UnpackDir (default: $ENV{EPAGES_PATCHES}/LanguagePacks)

Syntax
$LP = DownloadLanguagePack($Lang, $Version, $UnpackDir)
Example
$LP = DownloadLanguagePack('es', '6.12.0', "$ENV{EPAGES_PATCHES}/LanguagePacks");
$LP = DownloadLanguagePack('es', '6.12.0');
Input
$Lang (string)
language code as 'es'
$Version (string)
epages version
$UnpackDir (string)
dir where to store the language pack
Return
$LP (string)
path to downloaded language pack as .tar.gz file

GetLangPackFile

Returns major version (e.g. 6.15), basename (langpack-ca-epages615p3) and extension ('.tar.gz') of language file with $Lang and $Version

Syntax
($Major, $Basename, $Ext) = GetLangPackFile($Lang, $Version);
Input
$Lang (string)
language code as 'es' or 'en-US'
$Version (string)
version of the language pack
Return
$Major (string)
major version as 6.15
$Basename (string)
basename of the language pack URL (w/o suffix)
$Ext (string)
suffix of the language pack URL

GetLangPackURL

Returns the fastest URL for downloading a language pack. Th elanguage pack is specified by $Lang and $Version in 3 parts: dirname, basename and suffix. The complete URL format of a langpack is (example for http://epages.com): http://epages.com/LanguagePacks/[major]/[lang]/langpack-[lang]-epagesMSpL.tar.gz where [major] is e.g. 6.12; M - main version (e.g. 6); S - sub version (e.g. 12); L - patch level, e.g. 0 (for 6.12.0)

Syntax
($URLPrefix, $Basename, $Ext) = GetLangPackURL($Lang, $Version);
Input
$Lang (string)
language code as 'es' or 'en-US'
$Version (string)
version of the language pack
Return
$URLPrefix (string)
dirname of the language pack URL
$Basename (string)
basename of the language pack URL (w/o suffix)
$Ext (string)
suffix of the language pack URL

GetLanguageVersionList

Returns list of available language versions for all versions in space- separated string $GetVersion retrieved from http://epages.com/LanguagePacks/$Major/versions.txt

Syntax
$VersionList = GetLanguageVersionList($GetVersion)
Example
$VersionList = GetLanguageVersionList('6.14 6.13.1')
Input
$GetVersion (string)
space-separated string with versions X.Y or X.Y.Z
Return
$VersionList (ref.array)
array with epages versions

GetLanguagesByVersion

If $LanguageString is defined and does not contain 'any', simply splits it. Otherwise returns a list of available languages for specific epages version, retrieved from http://epages.com/LanguagePacks/$Major/$Version.txt

Syntax
$aLanguages = GetLanguagesByVersion($Version, $LanguageString);
Example
@Languages = @{GetLanguagesByVersion('6.12.0', 'es it')};
@Languages = @{GetLanguagesByVersion('6.12.0', 'es any it')};
@Languages = @{GetLanguagesByVersion('6.12.0')};
@Languages = @{GetLanguagesByVersion('6.12', 'any')};
Input
$Version (string)
epages version
$LanguageString (string)
string with language codes (or 'any' for any lang)
Return
$aLanguages (ref.array)
array with language codes

GetUsedLanguages

Returns the hashes $hStoreTypeLanguages (all languages per storetype) and $hStoreLanguages (all stores per language) for all stores in $aStoreNames.

Syntax
my ($hStoreTypeLanguages, $hStoreLanguages) = GetUsedLanguages($aStoreNames, $hFlags)
Example
my ($StoreTypeLang, $StoreLang) = GetUsedLanguages(['Store'], {Ignore => [qw(de en)]});
Input
$aStoreNames (ref.array)
list of store names
$hFlags (ref.hash)
flags
  • Ignore - ignore languages defined in array

Return
$hStoreTypeLanguages (ref.hash)
set $hStoreTypeLanguages{$StoreType}{$Lang} = 1
if $StoreType has $Lang
set $hStoreTypeLanguages{'/'}{$Lang} = 1
if any store type has $Lang
$hStoreLanguages (ref.hash)
set $hStoreLanguages{$Lang}{$StoreName} = 1
if $StoreName has $Lang

LanguagePackLocation

Finds the first occurence of language pack with $Lang and $Version as .tar.gz file in any of $hFlags->{Dir} (default: $ENV{EPAGES_PATCHES}/LanguagePacks). If not found, return $DirList->[0]/$LangPack (unless $hFlags->{IfExists}).

Syntax
$LP = LanguagePackLocation($Lang, $Version, $hFlags)
Example
LanguagePackLocation('es', '6.12.0', {Dir => ["$ENV{EPAGES_PATCHES}/LanguagePacks"]});
LanguagePackLocation('es', '6.12.0');
Input
$Lang (string)
language code as 'es'
$Version (string)
epages version
$hFlags (ref.hash)
flags
  • Dir - serach directories for language pack
  • IfExists - return location only if exists

Return
$LP (string)
path language pack as .tar.gz file

UntarLanguagePack

Unpacks language pack .tar.gz file into $UnpackDir (default: $ENV{EPAGES_PATCHES}/LanguagePacks). .tar.gz file must exist in $UnpackDir.

Syntax
UntarLanguagePack($Lang, $Version, $UnpackDir, $hFlags)
Example
UntarLanguagePack('es', '6.12.0', "$ENV{EPAGES_PATCHES}/LanguagePacks");
UntarLanguagePack('es', '6.12.0', undef, {Print => 1} );
Input
$Lang (string)
language code as 'es'
$Version (string)
epages version
$UnpackDir (string)
dir where to unpack the language pack
$hFlags (ref.hash)
flags for SystemCommand
Return
$LP (string)
path to unpacked language pack directory

deleteCtmplFiles

Deletes .ctmpl files of a language from EPAGES_STATIC.

Syntax
$Installer->deleteCtmplFiles;

deleteGlobalFiles

Deletes language files from the directories EPAGES_CARTRIDGES and EPAGES_WEBROOT/Doc.

Syntax
$Installer->deleteGlobalFiles;

dialectCode

Returns the dialect code of a language of the language pack.

Syntax
$DialectCode = $Installer->dialectCode;
Return
$DialectCode (string)
dialect code

install

Installs language pack database strings and files.

Syntax
$Installer->install;

installStoreType

Installs language pack files for /Data/Public and /Data/javascript.

Syntax
$Installer->installStoreType;

languageCode

Returns the language code of the language pack.

Syntax
$LanguageCode = $Installer->languageCode;
Return
$LanguageCode (string)
language code

new

Creates a new language pack installer.

Syntax
$Installer = DE_EPAGES::Installer::API::LanguagePack->new(%options);
Input
%options (hash)
options for un/install
  • LanguageCode - language code, e.g. 'es' - string

Return
$Installer (object)
language pack installer

storeName

Returns the logical name of the current database. Throws an error if there is no database connection.

Syntax
$StoreName = $Installer->storeName;
Return
$StoreName (string)
store name

storeType

Returns the type of the current database. Throws an error if there is no database connection.

Syntax
$StoreType = $Installer->storeType;
Return
$StoreName (string)
store name

storeTypeDir

The cartridge will be installed into this store type directory.

Syntax
$StoreTypeDir = $Installer->storeTypeDir;
Return
$StoreTypeDir (string)
store type directory

storeTypeVersion

The cartridge will be installed for this store type version.

Syntax
$StoreTypeVersion = $Installer->storeTypeVersion;
Return
$StoreTypeVersion (string)
store type version

uninstall

Deletes language pack database strings and files.

Syntax
$Installer->uninstall;