Move documentation builder to infra so that it isn't included in non `--dev` composer downloads
Unit test for locale builder Add new function stubs (as dummy) to Calculation list of functions
This commit is contained in:
parent
290c125e2e
commit
e0e5a81d69
|
|
@ -2,12 +2,13 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||||
use PhpOffice\PhpSpreadsheet\DocumentGenerator;
|
use PhpOffice\PhpSpreadsheetInfra\DocumentGenerator;
|
||||||
|
|
||||||
require_once 'vendor/autoload.php';
|
require_once 'vendor/autoload.php';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))->getProperty('phpSpreadsheetFunctions');
|
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))
|
||||||
|
->getProperty('phpSpreadsheetFunctions');
|
||||||
$phpSpreadsheetFunctionsProperty->setAccessible(true);
|
$phpSpreadsheetFunctionsProperty->setAccessible(true);
|
||||||
$phpSpreadsheetFunctions = $phpSpreadsheetFunctionsProperty->getValue();
|
$phpSpreadsheetFunctions = $phpSpreadsheetFunctionsProperty->getValue();
|
||||||
ksort($phpSpreadsheetFunctions);
|
ksort($phpSpreadsheetFunctions);
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,16 @@ use PhpOffice\PhpSpreadsheetInfra\LocaleGenerator;
|
||||||
require_once 'vendor/autoload.php';
|
require_once 'vendor/autoload.php';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))->getProperty('phpSpreadsheetFunctions');
|
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))
|
||||||
|
->getProperty('phpSpreadsheetFunctions');
|
||||||
$phpSpreadsheetFunctionsProperty->setAccessible(true);
|
$phpSpreadsheetFunctionsProperty->setAccessible(true);
|
||||||
$phpSpreadsheetFunctions = $phpSpreadsheetFunctionsProperty->getValue();
|
$phpSpreadsheetFunctions = $phpSpreadsheetFunctionsProperty->getValue();
|
||||||
|
|
||||||
$localeGenerator = new LocaleGenerator(
|
$localeGenerator = new LocaleGenerator(
|
||||||
__DIR__ . '/../src/PhpSpreadsheet/Calculation/locale/',
|
realpath(__DIR__ . '/../src/PhpSpreadsheet/Calculation/locale/'),
|
||||||
'Translations.xlsx',
|
'Translations.xlsx',
|
||||||
$phpSpreadsheetFunctions
|
$phpSpreadsheetFunctions,
|
||||||
|
true
|
||||||
);
|
);
|
||||||
$localeGenerator->generateLocales();
|
$localeGenerator->generateLocales();
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
|
|
||||||
|
|
@ -1,195 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
|
||||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
|
||||||
|
|
||||||
error_reporting(E_ALL);
|
|
||||||
set_time_limit(0);
|
|
||||||
|
|
||||||
date_default_timezone_set('UTC');
|
|
||||||
|
|
||||||
// Adjust the path as required to reference the PHPSpreadsheet Bootstrap file
|
|
||||||
require_once __DIR__ . '/../samples/Bootstrap.php';
|
|
||||||
|
|
||||||
class ExcelFunction
|
|
||||||
{
|
|
||||||
public $category;
|
|
||||||
|
|
||||||
public $functionName;
|
|
||||||
|
|
||||||
public $excelVersion;
|
|
||||||
|
|
||||||
public $implementation;
|
|
||||||
|
|
||||||
public function __construct(string $category, string $functionName, string $excelVersion, string $implementation)
|
|
||||||
{
|
|
||||||
$this->category = $category;
|
|
||||||
$this->functionName = $functionName;
|
|
||||||
$this->excelVersion = $excelVersion;
|
|
||||||
$this->implementation = $implementation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class ColumnSettings
|
|
||||||
{
|
|
||||||
public $length;
|
|
||||||
|
|
||||||
public $title;
|
|
||||||
|
|
||||||
public $underline;
|
|
||||||
|
|
||||||
public function __construct(string $title, int $length)
|
|
||||||
{
|
|
||||||
$this->length = $length;
|
|
||||||
$this->title = str_pad($title, $length, ' ');
|
|
||||||
$this->underline = str_repeat('-', $length);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class ListBuilder
|
|
||||||
{
|
|
||||||
private $inputFileName;
|
|
||||||
|
|
||||||
public $list = [];
|
|
||||||
|
|
||||||
public function __construct(string $inputFileName)
|
|
||||||
{
|
|
||||||
$this->inputFileName = $inputFileName;
|
|
||||||
|
|
||||||
$this->buildList();
|
|
||||||
uasort(
|
|
||||||
$this->list,
|
|
||||||
function ($a, $b) {
|
|
||||||
$aSortName = str_replace('.', '', $a->functionName, $aCount) . str_repeat('.', $aCount);
|
|
||||||
$bSortName = str_replace('.', '', $b->functionName, $bCount) . str_repeat('.', $bCount);
|
|
||||||
|
|
||||||
return $aSortName <=> $bSortName;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function buildList(): void
|
|
||||||
{
|
|
||||||
$inputFile = new \SplFileObject($this->inputFileName);
|
|
||||||
$category = null;
|
|
||||||
|
|
||||||
while (!$inputFile->eof()) {
|
|
||||||
$line = $inputFile->fgets();
|
|
||||||
if (strpos($line, '#') === 0) {
|
|
||||||
if (strpos($line, '##') === 0) {
|
|
||||||
$category = trim(substr($line, 3));
|
|
||||||
}
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$lineData = explode('|', $line);
|
|
||||||
if (count($lineData) <= 1 || strpos($line, '--') === 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$functionData = array_map('trim', $lineData);
|
|
||||||
|
|
||||||
if ($functionData[0] === 'Excel Function') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$function = new ExcelFunction($category, ...$functionData);
|
|
||||||
if (array_key_exists($function->functionName, $this->list)) {
|
|
||||||
echo " ERROR: Duplicate entry for function {$function->functionName} in master file", PHP_EOL;
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->list[$function->functionName] = $function;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class AlphabeticFileWriter
|
|
||||||
{
|
|
||||||
private $outputFileName;
|
|
||||||
|
|
||||||
private $outputFile;
|
|
||||||
|
|
||||||
public function __construct(string $outputFileName)
|
|
||||||
{
|
|
||||||
$this->outputFileName = $outputFileName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function generate(ExcelFunction ...$functionList): void
|
|
||||||
{
|
|
||||||
$this->outputFile = new \SplFileObject($this->outputFileName, 'w');
|
|
||||||
|
|
||||||
$this->excelFunctionColumnSettings = new ColumnSettings('Excel Function', max(array_map('strlen', array_column($functionList, 'functionName'))));
|
|
||||||
$this->categoryColumnSettings = new ColumnSettings('Category', max(array_map('strlen', array_column($functionList, 'category'))));
|
|
||||||
$this->excelVersionColumnSettings = new ColumnSettings('Excel Version', 13);
|
|
||||||
$this->phpSpreadsheetFunctionColumnSettings = new ColumnSettings('PhpSpreadsheet Function', 24);
|
|
||||||
|
|
||||||
$this->header();
|
|
||||||
$this->body(...$functionList);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function header(): void
|
|
||||||
{
|
|
||||||
$this->outputFile->fwrite('# Function list by name' . PHP_EOL);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function body(ExcelFunction ...$functionList): void
|
|
||||||
{
|
|
||||||
$initialCharacter = null;
|
|
||||||
|
|
||||||
foreach ($functionList as $excelFunction) {
|
|
||||||
if (substr($excelFunction->functionName, 0, 1) !== $initialCharacter) {
|
|
||||||
$initialCharacter = $this->subHeader($excelFunction);
|
|
||||||
}
|
|
||||||
|
|
||||||
$functionName = str_pad($excelFunction->functionName, $this->excelFunctionColumnSettings->length, ' ');
|
|
||||||
$category = str_pad($excelFunction->category, $this->categoryColumnSettings->length, ' ');
|
|
||||||
$excelVersion = str_pad($excelFunction->excelVersion, $this->excelVersionColumnSettings->length, ' ');
|
|
||||||
$this->outputFile->fwrite("{$functionName} | {$category} | {$excelVersion} | {$excelFunction->implementation}" . PHP_EOL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function subHeader(ExcelFunction $excelFunction)
|
|
||||||
{
|
|
||||||
$initialCharacter = substr($excelFunction->functionName, 0, 1);
|
|
||||||
|
|
||||||
$this->outputFile->fwrite(PHP_EOL . "## {$initialCharacter}" . PHP_EOL . PHP_EOL);
|
|
||||||
$this->outputFile->fwrite("{$this->excelFunctionColumnSettings->title} | {$this->categoryColumnSettings->title} | {$this->excelVersionColumnSettings->title} | {$this->phpSpreadsheetFunctionColumnSettings->title}" . PHP_EOL);
|
|
||||||
$this->outputFile->fwrite("{$this->excelFunctionColumnSettings->underline}-|-{$this->categoryColumnSettings->underline}-|-{$this->excelVersionColumnSettings->underline}-|-{$this->phpSpreadsheetFunctionColumnSettings->underline}" . PHP_EOL);
|
|
||||||
|
|
||||||
return $initialCharacter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$folder = __DIR__ . '/../docs/references/';
|
|
||||||
$inputFileName = 'function-list-by-category.md';
|
|
||||||
$outputFileName = 'function-list-by-name.md';
|
|
||||||
|
|
||||||
echo "Building list of functions from master file {$inputFileName}", PHP_EOL;
|
|
||||||
$listBuilder = new ListBuilder($folder . $inputFileName);
|
|
||||||
|
|
||||||
echo "Building new documentation list of alphabetic functions in {$outputFileName}", PHP_EOL;
|
|
||||||
$alphabeticFileWriter = new AlphabeticFileWriter($folder . $outputFileName);
|
|
||||||
$alphabeticFileWriter->generate(...array_values($listBuilder->list));
|
|
||||||
|
|
||||||
echo 'Identifying discrepancies between the master file and the Calculation Engine codebase', PHP_EOL;
|
|
||||||
$definedFunctions = (new Calculation())->getFunctions();
|
|
||||||
|
|
||||||
foreach ($listBuilder->list as $excelFunction) {
|
|
||||||
if (!array_key_exists($excelFunction->functionName, $definedFunctions)) {
|
|
||||||
echo " ERROR: Function {$excelFunction->functionName}() of category {$excelFunction->category} is not defined in the Calculation Engine", PHP_EOL;
|
|
||||||
} elseif (array_key_exists($excelFunction->functionName, $definedFunctions) && $excelFunction->implementation === '**Not yet Implemented**') {
|
|
||||||
if ($definedFunctions[$excelFunction->functionName]['functionCall'] !== [Functions::class, 'DUMMY']) {
|
|
||||||
echo " ERROR: Function {$excelFunction->functionName}() of category {$excelFunction->category} is flagged as not yet implemented in the documentation", PHP_EOL;
|
|
||||||
echo ' but does have an implementation in the code', PHP_EOL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($definedFunctions as $definedFunction => $definedFunctionDetail) {
|
|
||||||
if (!array_key_exists($definedFunction, $listBuilder->list)) {
|
|
||||||
echo " ERROR: Function {$definedFunction}() of category {$definedFunctionDetail['category']} is defined in the Calculation Engine, but not in the master file", PHP_EOL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace PhpOffice\PhpSpreadsheet;
|
namespace PhpOffice\PhpSpreadsheetInfra;
|
||||||
|
|
||||||
use PhpOffice\PhpSpreadsheet\Calculation\Category;
|
use PhpOffice\PhpSpreadsheet\Calculation\Category;
|
||||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||||
|
|
@ -43,6 +43,8 @@ class LocaleGenerator
|
||||||
*/
|
*/
|
||||||
protected $translationSpreadsheet;
|
protected $translationSpreadsheet;
|
||||||
|
|
||||||
|
protected $verbose;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Worksheet
|
* @var Worksheet
|
||||||
*/
|
*/
|
||||||
|
|
@ -64,11 +66,13 @@ class LocaleGenerator
|
||||||
public function __construct(
|
public function __construct(
|
||||||
string $translationBaseFolder,
|
string $translationBaseFolder,
|
||||||
string $translationSpreadsheetName,
|
string $translationSpreadsheetName,
|
||||||
array $phpSpreadsheetFunctions
|
array $phpSpreadsheetFunctions,
|
||||||
|
bool $verbose = false
|
||||||
) {
|
) {
|
||||||
$this->translationBaseFolder = $translationBaseFolder;
|
$this->translationBaseFolder = $translationBaseFolder;
|
||||||
$this->translationSpreadsheetName = $translationSpreadsheetName;
|
$this->translationSpreadsheetName = $translationSpreadsheetName;
|
||||||
$this->phpSpreadsheetFunctions = $phpSpreadsheetFunctions;
|
$this->phpSpreadsheetFunctions = $phpSpreadsheetFunctions;
|
||||||
|
$this->verbose = $verbose;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function generateLocales(): void
|
public function generateLocales(): void
|
||||||
|
|
@ -110,7 +114,7 @@ class LocaleGenerator
|
||||||
} else {
|
} else {
|
||||||
$errorCodeTranslation = "{$errorCode}" . PHP_EOL;
|
$errorCodeTranslation = "{$errorCode}" . PHP_EOL;
|
||||||
fwrite($configFile, $errorCodeTranslation);
|
fwrite($configFile, $errorCodeTranslation);
|
||||||
echo "No {$language} translation available for error code {$errorCode}", PHP_EOL;
|
$this->log("No {$language} translation available for error code {$errorCode}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -125,7 +129,7 @@ class LocaleGenerator
|
||||||
$functionTranslation = "ArgumentSeparator = {$localeValue}" . PHP_EOL;
|
$functionTranslation = "ArgumentSeparator = {$localeValue}" . PHP_EOL;
|
||||||
fwrite($configFile, $functionTranslation);
|
fwrite($configFile, $functionTranslation);
|
||||||
} else {
|
} else {
|
||||||
echo 'No Argument Separator defined', PHP_EOL;
|
$this->log('No Argument Separator defined');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -142,12 +146,12 @@ class LocaleGenerator
|
||||||
if ($this->isFunctionCategoryEntry($translationCell)) {
|
if ($this->isFunctionCategoryEntry($translationCell)) {
|
||||||
$this->writeFileSectionHeader($functionFile, "{$translationValue} ({$functionName})");
|
$this->writeFileSectionHeader($functionFile, "{$translationValue} ({$functionName})");
|
||||||
} elseif (!array_key_exists($functionName, $this->phpSpreadsheetFunctions)) {
|
} elseif (!array_key_exists($functionName, $this->phpSpreadsheetFunctions)) {
|
||||||
echo "Function {$functionName} is not defined in PhpSpreadsheet", PHP_EOL;
|
$this->log("Function {$functionName} is not defined in PhpSpreadsheet");
|
||||||
} elseif (!empty($translationValue)) {
|
} elseif (!empty($translationValue)) {
|
||||||
$functionTranslation = "{$functionName} = {$translationValue}" . PHP_EOL;
|
$functionTranslation = "{$functionName} = {$translationValue}" . PHP_EOL;
|
||||||
fwrite($functionFile, $functionTranslation);
|
fwrite($functionFile, $functionTranslation);
|
||||||
} else {
|
} else {
|
||||||
echo "No {$language} translation available for function {$functionName}", PHP_EOL;
|
$this->log("No {$language} translation available for function {$functionName}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -156,11 +160,11 @@ class LocaleGenerator
|
||||||
|
|
||||||
protected function openConfigFile(string $locale, string $language, string $localeLanguage)
|
protected function openConfigFile(string $locale, string $language, string $localeLanguage)
|
||||||
{
|
{
|
||||||
echo "Building locale {$locale} ($language) configuration", PHP_EOL;
|
$this->log("Building locale {$locale} ($language) configuration");
|
||||||
$localeFolder = $this->getLocaleFolder($locale);
|
$localeFolder = $this->getLocaleFolder($locale);
|
||||||
|
|
||||||
$configFileName = realpath($localeFolder . DIRECTORY_SEPARATOR . 'config');
|
$configFileName = realpath($localeFolder . DIRECTORY_SEPARATOR . 'config');
|
||||||
echo "Writing locale configuration to {$configFileName}", PHP_EOL;
|
$this->log("Writing locale configuration to {$configFileName}");
|
||||||
|
|
||||||
$configFile = fopen($configFileName, 'wb');
|
$configFile = fopen($configFileName, 'wb');
|
||||||
$this->writeFileHeader($configFile, $localeLanguage, $language, 'locale settings');
|
$this->writeFileHeader($configFile, $localeLanguage, $language, 'locale settings');
|
||||||
|
|
@ -170,11 +174,11 @@ class LocaleGenerator
|
||||||
|
|
||||||
protected function openFunctionNameFile(string $locale, string $language, string $localeLanguage)
|
protected function openFunctionNameFile(string $locale, string $language, string $localeLanguage)
|
||||||
{
|
{
|
||||||
echo "Building locale {$locale} ($language) function names", PHP_EOL;
|
$this->log("Building locale {$locale} ($language) function names");
|
||||||
$localeFolder = $this->getLocaleFolder($locale);
|
$localeFolder = $this->getLocaleFolder($locale);
|
||||||
|
|
||||||
$functionFileName = realpath($localeFolder . DIRECTORY_SEPARATOR . 'functions');
|
$functionFileName = realpath($localeFolder . DIRECTORY_SEPARATOR . 'functions');
|
||||||
echo "Writing local function names to {$functionFileName}", PHP_EOL;
|
$this->log("Writing local function names to {$functionFileName}");
|
||||||
|
|
||||||
$functionFile = fopen($functionFileName, 'wb');
|
$functionFile = fopen($functionFileName, 'wb');
|
||||||
$this->writeFileHeader($functionFile, $localeLanguage, $language, 'function name translations');
|
$this->writeFileHeader($functionFile, $localeLanguage, $language, 'function name translations');
|
||||||
|
|
@ -231,7 +235,7 @@ class LocaleGenerator
|
||||||
protected function mapLanguageColumns(Worksheet $translationWorksheet): array
|
protected function mapLanguageColumns(Worksheet $translationWorksheet): array
|
||||||
{
|
{
|
||||||
$sheetName = $translationWorksheet->getTitle();
|
$sheetName = $translationWorksheet->getTitle();
|
||||||
echo "Mapping Languages for {$sheetName}:", PHP_EOL;
|
$this->log("Mapping Languages for {$sheetName}:");
|
||||||
|
|
||||||
$baseColumn = self::ENGLISH_REFERENCE_COLUMN;
|
$baseColumn = self::ENGLISH_REFERENCE_COLUMN;
|
||||||
$languagesList = $translationWorksheet->getColumnIterator(++$baseColumn);
|
$languagesList = $translationWorksheet->getColumnIterator(++$baseColumn);
|
||||||
|
|
@ -245,7 +249,7 @@ class LocaleGenerator
|
||||||
/** @var Cell $cell */
|
/** @var Cell $cell */
|
||||||
if ($this->localeCanBeSupported($translationWorksheet, $cell)) {
|
if ($this->localeCanBeSupported($translationWorksheet, $cell)) {
|
||||||
$languageNameMap[$cell->getColumn()] = $cell->getValue();
|
$languageNameMap[$cell->getColumn()] = $cell->getValue();
|
||||||
echo $cell->getColumn(), ' -> ', $cell->getValue(), PHP_EOL;
|
$this->log($cell->getColumn() . ' -> ' . $cell->getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -270,7 +274,7 @@ class LocaleGenerator
|
||||||
|
|
||||||
protected function mapErrorCodeRows(): void
|
protected function mapErrorCodeRows(): void
|
||||||
{
|
{
|
||||||
echo 'Mapping Error Codes:', PHP_EOL;
|
$this->log('Mapping Error Codes:');
|
||||||
$errorList = $this->localeTranslations->getRowIterator(self::ERROR_CODES_FIRST_ROW);
|
$errorList = $this->localeTranslations->getRowIterator(self::ERROR_CODES_FIRST_ROW);
|
||||||
|
|
||||||
foreach ($errorList as $errorRow) {
|
foreach ($errorList as $errorRow) {
|
||||||
|
|
@ -280,7 +284,7 @@ class LocaleGenerator
|
||||||
foreach ($cells as $cell) {
|
foreach ($cells as $cell) {
|
||||||
/** @var Cell $cell */
|
/** @var Cell $cell */
|
||||||
if ($cell->getValue() != '') {
|
if ($cell->getValue() != '') {
|
||||||
echo $cell->getRow(), ' -> ', $cell->getValue(), PHP_EOL;
|
$this->log($cell->getRow() . ' -> ' . $cell->getValue());
|
||||||
$this->errorCodeMap[$cell->getValue()] = $cell->getRow();
|
$this->errorCodeMap[$cell->getValue()] = $cell->getRow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -289,7 +293,7 @@ class LocaleGenerator
|
||||||
|
|
||||||
protected function mapFunctionNameRows(): void
|
protected function mapFunctionNameRows(): void
|
||||||
{
|
{
|
||||||
echo 'Mapping Functions:', PHP_EOL;
|
$this->log('Mapping Functions:');
|
||||||
$functionList = $this->functionNameTranslations->getRowIterator(self::FUNCTION_NAME_LIST_FIRST_ROW);
|
$functionList = $this->functionNameTranslations->getRowIterator(self::FUNCTION_NAME_LIST_FIRST_ROW);
|
||||||
|
|
||||||
foreach ($functionList as $functionRow) {
|
foreach ($functionList as $functionRow) {
|
||||||
|
|
@ -300,7 +304,7 @@ class LocaleGenerator
|
||||||
/** @var Cell $cell */
|
/** @var Cell $cell */
|
||||||
if ($this->isFunctionCategoryEntry($cell)) {
|
if ($this->isFunctionCategoryEntry($cell)) {
|
||||||
if (!empty($cell->getValue())) {
|
if (!empty($cell->getValue())) {
|
||||||
echo 'CATEGORY: ', $cell->getValue(), PHP_EOL;
|
$this->log('CATEGORY: ' . $cell->getValue());
|
||||||
$this->functionNameMap[$cell->getValue()] = $cell->getRow();
|
$this->functionNameMap[$cell->getValue()] = $cell->getRow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -308,10 +312,10 @@ class LocaleGenerator
|
||||||
}
|
}
|
||||||
if ($cell->getValue() != '') {
|
if ($cell->getValue() != '') {
|
||||||
if (is_bool($cell->getValue())) {
|
if (is_bool($cell->getValue())) {
|
||||||
echo $cell->getRow(), ' -> ', ($cell->getValue() ? 'TRUE' : 'FALSE'), PHP_EOL;
|
$this->log($cell->getRow() . ' -> ' . ($cell->getValue() ? 'TRUE' : 'FALSE'));
|
||||||
$this->functionNameMap[($cell->getValue() ? 'TRUE' : 'FALSE')] = $cell->getRow();
|
$this->functionNameMap[($cell->getValue() ? 'TRUE' : 'FALSE')] = $cell->getRow();
|
||||||
} else {
|
} else {
|
||||||
echo $cell->getRow(), ' -> ', $cell->getValue(), PHP_EOL;
|
$this->log($cell->getRow() . ' -> ' . $cell->getValue());
|
||||||
$this->functionNameMap[$cell->getValue()] = $cell->getRow();
|
$this->functionNameMap[$cell->getValue()] = $cell->getRow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -328,4 +332,15 @@ class LocaleGenerator
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function log(string $message): void
|
||||||
|
{
|
||||||
|
if ($this->verbose === false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo $message, PHP_EOL;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -299,6 +299,11 @@ class Calculation
|
||||||
'functionCall' => [Functions::class, 'DUMMY'],
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
'argumentCount' => '1',
|
'argumentCount' => '1',
|
||||||
],
|
],
|
||||||
|
'ARRAYTOTEXT' => [
|
||||||
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
'ASC' => [
|
'ASC' => [
|
||||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
'functionCall' => [Functions::class, 'DUMMY'],
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
|
@ -766,6 +771,11 @@ class Calculation
|
||||||
'functionCall' => [DateTimeExcel\Difference::class, 'interval'],
|
'functionCall' => [DateTimeExcel\Difference::class, 'interval'],
|
||||||
'argumentCount' => '2,3',
|
'argumentCount' => '2,3',
|
||||||
],
|
],
|
||||||
|
'DATESTRING' => [
|
||||||
|
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
'DATEVALUE' => [
|
'DATEVALUE' => [
|
||||||
'category' => Category::CATEGORY_DATE_AND_TIME,
|
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||||
'functionCall' => [DateTimeExcel\DateValue::class, 'fromString'],
|
'functionCall' => [DateTimeExcel\DateValue::class, 'fromString'],
|
||||||
|
|
@ -1527,6 +1537,11 @@ class Calculation
|
||||||
'functionCall' => [Functions::class, 'isText'],
|
'functionCall' => [Functions::class, 'isText'],
|
||||||
'argumentCount' => '1',
|
'argumentCount' => '1',
|
||||||
],
|
],
|
||||||
|
'ISTHAIDIGIT' => [
|
||||||
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
'JIS' => [
|
'JIS' => [
|
||||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
'functionCall' => [Functions::class, 'DUMMY'],
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
|
@ -1842,6 +1857,11 @@ class Calculation
|
||||||
'functionCall' => [Financial\CashFlow\Variable\Periodic::class, 'presentValue'],
|
'functionCall' => [Financial\CashFlow\Variable\Periodic::class, 'presentValue'],
|
||||||
'argumentCount' => '2+',
|
'argumentCount' => '2+',
|
||||||
],
|
],
|
||||||
|
'NUMBERSTRING' => [
|
||||||
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
'NUMBERVALUE' => [
|
'NUMBERVALUE' => [
|
||||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
'functionCall' => [TextData\Format::class, 'NUMBERVALUE'],
|
'functionCall' => [TextData\Format::class, 'NUMBERVALUE'],
|
||||||
|
|
@ -2124,6 +2144,16 @@ class Calculation
|
||||||
'functionCall' => [MathTrig\Round::class, 'round'],
|
'functionCall' => [MathTrig\Round::class, 'round'],
|
||||||
'argumentCount' => '2',
|
'argumentCount' => '2',
|
||||||
],
|
],
|
||||||
|
'ROUNDBAHTDOWN' => [
|
||||||
|
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
|
'ROUNDBAHTUP' => [
|
||||||
|
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
'ROUNDDOWN' => [
|
'ROUNDDOWN' => [
|
||||||
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||||
'functionCall' => [MathTrig\Round::class, 'down'],
|
'functionCall' => [MathTrig\Round::class, 'down'],
|
||||||
|
|
@ -2427,6 +2457,41 @@ class Calculation
|
||||||
'functionCall' => [TextData\Concatenate::class, 'TEXTJOIN'],
|
'functionCall' => [TextData\Concatenate::class, 'TEXTJOIN'],
|
||||||
'argumentCount' => '3+',
|
'argumentCount' => '3+',
|
||||||
],
|
],
|
||||||
|
'THAIDAYOFWEEK' => [
|
||||||
|
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
|
'THAIDIGIT' => [
|
||||||
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
|
'THAIMONTHOFYEAR' => [
|
||||||
|
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
|
'THAINUMSOUND' => [
|
||||||
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
|
'THAINUMSTRING' => [
|
||||||
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
|
'THAISTRINGLENGTH' => [
|
||||||
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
|
'THAIYEAR' => [
|
||||||
|
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
'TIME' => [
|
'TIME' => [
|
||||||
'category' => Category::CATEGORY_DATE_AND_TIME,
|
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||||
'functionCall' => [DateTimeExcel\Time::class, 'fromHMS'],
|
'functionCall' => [DateTimeExcel\Time::class, 'fromHMS'],
|
||||||
|
|
@ -2532,6 +2597,11 @@ class Calculation
|
||||||
'functionCall' => [TextData\Format::class, 'VALUE'],
|
'functionCall' => [TextData\Format::class, 'VALUE'],
|
||||||
'argumentCount' => '1',
|
'argumentCount' => '1',
|
||||||
],
|
],
|
||||||
|
'VALUETOTEXT' => [
|
||||||
|
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||||
|
'functionCall' => [Functions::class, 'DUMMY'],
|
||||||
|
'argumentCount' => '?',
|
||||||
|
],
|
||||||
'VAR' => [
|
'VAR' => [
|
||||||
'category' => Category::CATEGORY_STATISTICAL,
|
'category' => Category::CATEGORY_STATISTICAL,
|
||||||
'functionCall' => [Statistical\Variances::class, 'VAR'],
|
'functionCall' => [Statistical\Variances::class, 'VAR'],
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = DVARIANSP
|
||||||
##
|
##
|
||||||
DATE = DATO
|
DATE = DATO
|
||||||
DATEDIF = DATO.FORSKEL
|
DATEDIF = DATO.FORSKEL
|
||||||
|
DATESTRING = DATOSTRENG
|
||||||
DATEVALUE = DATOVÆRDI
|
DATEVALUE = DATOVÆRDI
|
||||||
DAY = DAG
|
DAY = DAG
|
||||||
DAYS = DAGE
|
DAYS = DAGE
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = ANTAL.ARBEJDSDAGE
|
||||||
NETWORKDAYS.INTL = ANTAL.ARBEJDSDAGE.INTL
|
NETWORKDAYS.INTL = ANTAL.ARBEJDSDAGE.INTL
|
||||||
NOW = NU
|
NOW = NU
|
||||||
SECOND = SEKUND
|
SECOND = SEKUND
|
||||||
|
THAIDAYOFWEEK = THAILANDSKUGEDAG
|
||||||
|
THAIMONTHOFYEAR = THAILANDSKMÅNED
|
||||||
|
THAIYEAR = THAILANDSKÅR
|
||||||
TIME = TID
|
TIME = TID
|
||||||
TIMEVALUE = TIDSVÆRDI
|
TIMEVALUE = TIDSVÆRDI
|
||||||
TODAY = IDAG
|
TODAY = IDAG
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = SLUMP
|
||||||
RANDBETWEEN = SLUMPMELLEM
|
RANDBETWEEN = SLUMPMELLEM
|
||||||
ROMAN = ROMERTAL
|
ROMAN = ROMERTAL
|
||||||
ROUND = AFRUND
|
ROUND = AFRUND
|
||||||
|
ROUNDBAHTDOWN = RUNDBAHTNED
|
||||||
|
ROUNDBAHTUP = RUNDBAHTOP
|
||||||
ROUNDDOWN = RUND.NED
|
ROUNDDOWN = RUND.NED
|
||||||
ROUNDUP = RUND.OP
|
ROUNDUP = RUND.OP
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -450,10 +456,12 @@ DOLLAR = KR
|
||||||
EXACT = EKSAKT
|
EXACT = EKSAKT
|
||||||
FIND = FIND
|
FIND = FIND
|
||||||
FIXED = FAST
|
FIXED = FAST
|
||||||
|
ISTHAIDIGIT = ERTHAILANDSKCIFFER
|
||||||
LEFT = VENSTRE
|
LEFT = VENSTRE
|
||||||
LEN = LÆNGDE
|
LEN = LÆNGDE
|
||||||
LOWER = SMÅ.BOGSTAVER
|
LOWER = SMÅ.BOGSTAVER
|
||||||
MID = MIDT
|
MID = MIDT
|
||||||
|
NUMBERSTRING = TALSTRENG
|
||||||
NUMBERVALUE = TALVÆRDI
|
NUMBERVALUE = TALVÆRDI
|
||||||
PHONETIC = FONETISK
|
PHONETIC = FONETISK
|
||||||
PROPER = STORT.FORBOGSTAV
|
PROPER = STORT.FORBOGSTAV
|
||||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = UDSKIFT
|
||||||
T = T
|
T = T
|
||||||
TEXT = TEKST
|
TEXT = TEKST
|
||||||
TEXTJOIN = TEKST.KOMBINER
|
TEXTJOIN = TEKST.KOMBINER
|
||||||
|
THAIDIGIT = THAILANDSKCIFFER
|
||||||
|
THAINUMSOUND = THAILANDSKNUMLYD
|
||||||
|
THAINUMSTRING = THAILANDSKNUMSTRENG
|
||||||
|
THAISTRINGLENGTH = THAILANDSKSTRENGLÆNGDE
|
||||||
TRIM = FJERN.OVERFLØDIGE.BLANKE
|
TRIM = FJERN.OVERFLØDIGE.BLANKE
|
||||||
UNICHAR = UNICHAR
|
UNICHAR = UNICHAR
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,9 @@ NETWORKDAYS = NETTOARBEITSTAGE
|
||||||
NETWORKDAYS.INTL = NETTOARBEITSTAGE.INTL
|
NETWORKDAYS.INTL = NETTOARBEITSTAGE.INTL
|
||||||
NOW = JETZT
|
NOW = JETZT
|
||||||
SECOND = SEKUNDE
|
SECOND = SEKUNDE
|
||||||
|
THAIDAYOFWEEK = THAIWOCHENTAG
|
||||||
|
THAIMONTHOFYEAR = THAIMONATDESJAHRES
|
||||||
|
THAIYEAR = THAIJAHR
|
||||||
TIME = ZEIT
|
TIME = ZEIT
|
||||||
TIMEVALUE = ZEITWERT
|
TIMEVALUE = ZEITWERT
|
||||||
TODAY = HEUTE
|
TODAY = HEUTE
|
||||||
|
|
@ -300,6 +303,8 @@ RAND = ZUFALLSZAHL
|
||||||
RANDBETWEEN = ZUFALLSBEREICH
|
RANDBETWEEN = ZUFALLSBEREICH
|
||||||
ROMAN = RÖMISCH
|
ROMAN = RÖMISCH
|
||||||
ROUND = RUNDEN
|
ROUND = RUNDEN
|
||||||
|
ROUNDBAHTDOWN = RUNDBAHTNED
|
||||||
|
ROUNDBAHTUP = BAHTAUFRUNDEN
|
||||||
ROUNDDOWN = ABRUNDEN
|
ROUNDDOWN = ABRUNDEN
|
||||||
ROUNDUP = AUFRUNDEN
|
ROUNDUP = AUFRUNDEN
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -449,6 +454,7 @@ DOLLAR = DM
|
||||||
EXACT = IDENTISCH
|
EXACT = IDENTISCH
|
||||||
FIND = FINDEN
|
FIND = FINDEN
|
||||||
FIXED = FEST
|
FIXED = FEST
|
||||||
|
ISTHAIDIGIT = ISTTHAIZAHLENWORT
|
||||||
LEFT = LINKS
|
LEFT = LINKS
|
||||||
LEN = LÄNGE
|
LEN = LÄNGE
|
||||||
LOWER = KLEIN
|
LOWER = KLEIN
|
||||||
|
|
@ -463,6 +469,10 @@ SUBSTITUTE = WECHSELN
|
||||||
T = T
|
T = T
|
||||||
TEXT = TEXT
|
TEXT = TEXT
|
||||||
TEXTJOIN = TEXTVERKETTEN
|
TEXTJOIN = TEXTVERKETTEN
|
||||||
|
THAIDIGIT = THAIZAHLENWORT
|
||||||
|
THAINUMSOUND = THAIZAHLSOUND
|
||||||
|
THAINUMSTRING = THAILANDSKNUMSTRENG
|
||||||
|
THAISTRINGLENGTH = THAIZEICHENFOLGENLÄNGE
|
||||||
TRIM = GLÄTTEN
|
TRIM = GLÄTTEN
|
||||||
UNICHAR = UNIZEICHEN
|
UNICHAR = UNIZEICHEN
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = BDVARP
|
||||||
##
|
##
|
||||||
DATE = FECHA
|
DATE = FECHA
|
||||||
DATEDIF = SIFECHA
|
DATEDIF = SIFECHA
|
||||||
|
DATESTRING = CADENA.FECHA
|
||||||
DATEVALUE = FECHANUMERO
|
DATEVALUE = FECHANUMERO
|
||||||
DAY = DIA
|
DAY = DIA
|
||||||
DAYS = DIAS
|
DAYS = DIAS
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = DIAS.LAB
|
||||||
NETWORKDAYS.INTL = DIAS.LAB.INTL
|
NETWORKDAYS.INTL = DIAS.LAB.INTL
|
||||||
NOW = AHORA
|
NOW = AHORA
|
||||||
SECOND = SEGUNDO
|
SECOND = SEGUNDO
|
||||||
|
THAIDAYOFWEEK = DIASEMTAI
|
||||||
|
THAIMONTHOFYEAR = MESAÑOTAI
|
||||||
|
THAIYEAR = AÑOTAI
|
||||||
TIME = NSHORA
|
TIME = NSHORA
|
||||||
TIMEVALUE = HORANUMERO
|
TIMEVALUE = HORANUMERO
|
||||||
TODAY = HOY
|
TODAY = HOY
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = ALEATORIO
|
||||||
RANDBETWEEN = ALEATORIO.ENTRE
|
RANDBETWEEN = ALEATORIO.ENTRE
|
||||||
ROMAN = NUMERO.ROMANO
|
ROMAN = NUMERO.ROMANO
|
||||||
ROUND = REDONDEAR
|
ROUND = REDONDEAR
|
||||||
|
ROUNDBAHTDOWN = REDONDEAR.BAHT.MAS
|
||||||
|
ROUNDBAHTUP = REDONDEAR.BAHT.MENOS
|
||||||
ROUNDDOWN = REDONDEAR.MENOS
|
ROUNDDOWN = REDONDEAR.MENOS
|
||||||
ROUNDUP = REDONDEAR.MAS
|
ROUNDUP = REDONDEAR.MAS
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -450,10 +456,12 @@ DOLLAR = MONEDA
|
||||||
EXACT = IGUAL
|
EXACT = IGUAL
|
||||||
FIND = ENCONTRAR
|
FIND = ENCONTRAR
|
||||||
FIXED = DECIMAL
|
FIXED = DECIMAL
|
||||||
|
ISTHAIDIGIT = ESDIGITOTAI
|
||||||
LEFT = IZQUIERDA
|
LEFT = IZQUIERDA
|
||||||
LEN = LARGO
|
LEN = LARGO
|
||||||
LOWER = MINUSC
|
LOWER = MINUSC
|
||||||
MID = EXTRAE
|
MID = EXTRAE
|
||||||
|
NUMBERSTRING = CADENA.NUMERO
|
||||||
NUMBERVALUE = VALOR.NUMERO
|
NUMBERVALUE = VALOR.NUMERO
|
||||||
PHONETIC = FONETICO
|
PHONETIC = FONETICO
|
||||||
PROPER = NOMPROPIO
|
PROPER = NOMPROPIO
|
||||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = SUSTITUIR
|
||||||
T = T
|
T = T
|
||||||
TEXT = TEXTO
|
TEXT = TEXTO
|
||||||
TEXTJOIN = UNIRCADENAS
|
TEXTJOIN = UNIRCADENAS
|
||||||
|
THAIDIGIT = DIGITOTAI
|
||||||
|
THAINUMSOUND = SONNUMTAI
|
||||||
|
THAINUMSTRING = CADENANUMTAI
|
||||||
|
THAISTRINGLENGTH = LONGCADENATAI
|
||||||
TRIM = ESPACIOS
|
TRIM = ESPACIOS
|
||||||
UNICHAR = UNICAR
|
UNICHAR = UNICAR
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = TVARIANSSIP
|
||||||
##
|
##
|
||||||
DATE = PÄIVÄYS
|
DATE = PÄIVÄYS
|
||||||
DATEDIF = PVMERO
|
DATEDIF = PVMERO
|
||||||
|
DATESTRING = PVMMERKKIJONO
|
||||||
DATEVALUE = PÄIVÄYSARVO
|
DATEVALUE = PÄIVÄYSARVO
|
||||||
DAY = PÄIVÄ
|
DAY = PÄIVÄ
|
||||||
DAYS = PÄIVÄT
|
DAYS = PÄIVÄT
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = TYÖPÄIVÄT
|
||||||
NETWORKDAYS.INTL = TYÖPÄIVÄT.KANSVÄL
|
NETWORKDAYS.INTL = TYÖPÄIVÄT.KANSVÄL
|
||||||
NOW = NYT
|
NOW = NYT
|
||||||
SECOND = SEKUNNIT
|
SECOND = SEKUNNIT
|
||||||
|
THAIDAYOFWEEK = THAI.VIIKONPÄIVÄ
|
||||||
|
THAIMONTHOFYEAR = THAI.KUUKAUSI
|
||||||
|
THAIYEAR = THAI.VUOSI
|
||||||
TIME = AIKA
|
TIME = AIKA
|
||||||
TIMEVALUE = AIKA_ARVO
|
TIMEVALUE = AIKA_ARVO
|
||||||
TODAY = TÄMÄ.PÄIVÄ
|
TODAY = TÄMÄ.PÄIVÄ
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = SATUNNAISLUKU
|
||||||
RANDBETWEEN = SATUNNAISLUKU.VÄLILTÄ
|
RANDBETWEEN = SATUNNAISLUKU.VÄLILTÄ
|
||||||
ROMAN = ROMAN
|
ROMAN = ROMAN
|
||||||
ROUND = PYÖRISTÄ
|
ROUND = PYÖRISTÄ
|
||||||
|
ROUNDBAHTDOWN = PYÖRISTÄ.BAHT.ALAS
|
||||||
|
ROUNDBAHTUP = PYÖRISTÄ.BAHT.YLÖS
|
||||||
ROUNDDOWN = PYÖRISTÄ.DES.ALAS
|
ROUNDDOWN = PYÖRISTÄ.DES.ALAS
|
||||||
ROUNDUP = PYÖRISTÄ.DES.YLÖS
|
ROUNDUP = PYÖRISTÄ.DES.YLÖS
|
||||||
SEC = SEK
|
SEC = SEK
|
||||||
|
|
@ -450,10 +456,12 @@ DOLLAR = VALUUTTA
|
||||||
EXACT = VERTAA
|
EXACT = VERTAA
|
||||||
FIND = ETSI
|
FIND = ETSI
|
||||||
FIXED = KIINTEÄ
|
FIXED = KIINTEÄ
|
||||||
|
ISTHAIDIGIT = ON.THAI.NUMERO
|
||||||
LEFT = VASEN
|
LEFT = VASEN
|
||||||
LEN = PITUUS
|
LEN = PITUUS
|
||||||
LOWER = PIENET
|
LOWER = PIENET
|
||||||
MID = POIMI.TEKSTI
|
MID = POIMI.TEKSTI
|
||||||
|
NUMBERSTRING = NROMERKKIJONO
|
||||||
NUMBERVALUE = NROARVO
|
NUMBERVALUE = NROARVO
|
||||||
PHONETIC = FONEETTINEN
|
PHONETIC = FONEETTINEN
|
||||||
PROPER = ERISNIMI
|
PROPER = ERISNIMI
|
||||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = VAIHDA
|
||||||
T = T
|
T = T
|
||||||
TEXT = TEKSTI
|
TEXT = TEKSTI
|
||||||
TEXTJOIN = TEKSTI.YHDISTÄ
|
TEXTJOIN = TEKSTI.YHDISTÄ
|
||||||
|
THAIDIGIT = THAI.NUMERO
|
||||||
|
THAINUMSOUND = THAI.LUKU.ÄÄNI
|
||||||
|
THAINUMSTRING = THAI.LUKU.MERKKIJONO
|
||||||
|
THAISTRINGLENGTH = THAI.MERKKIJONON.PITUUS
|
||||||
TRIM = POISTA.VÄLIT
|
TRIM = POISTA.VÄLIT
|
||||||
UNICHAR = UNICODEMERKKI
|
UNICHAR = UNICODEMERKKI
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = AB.VAR2
|
||||||
##
|
##
|
||||||
DATE = DÁTUM
|
DATE = DÁTUM
|
||||||
DATEDIF = DÁTUMTÓLIG
|
DATEDIF = DÁTUMTÓLIG
|
||||||
|
DATESTRING = DÁTUMSZÖVEG
|
||||||
DATEVALUE = DÁTUMÉRTÉK
|
DATEVALUE = DÁTUMÉRTÉK
|
||||||
DAY = NAP
|
DAY = NAP
|
||||||
DAYS = NAPOK
|
DAYS = NAPOK
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = ÖSSZ.MUNKANAP
|
||||||
NETWORKDAYS.INTL = ÖSSZ.MUNKANAP.INTL
|
NETWORKDAYS.INTL = ÖSSZ.MUNKANAP.INTL
|
||||||
NOW = MOST
|
NOW = MOST
|
||||||
SECOND = MPERC
|
SECOND = MPERC
|
||||||
|
THAIDAYOFWEEK = THAIHÉTNAPJA
|
||||||
|
THAIMONTHOFYEAR = THAIHÓNAP
|
||||||
|
THAIYEAR = THAIÉV
|
||||||
TIME = IDŐ
|
TIME = IDŐ
|
||||||
TIMEVALUE = IDŐÉRTÉK
|
TIMEVALUE = IDŐÉRTÉK
|
||||||
TODAY = MA
|
TODAY = MA
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = VÉL
|
||||||
RANDBETWEEN = VÉLETLEN.KÖZÖTT
|
RANDBETWEEN = VÉLETLEN.KÖZÖTT
|
||||||
ROMAN = RÓMAI
|
ROMAN = RÓMAI
|
||||||
ROUND = KEREKÍTÉS
|
ROUND = KEREKÍTÉS
|
||||||
|
ROUNDBAHTDOWN = BAHTKEREK.LE
|
||||||
|
ROUNDBAHTUP = BAHTKEREK.FEL
|
||||||
ROUNDDOWN = KEREK.LE
|
ROUNDDOWN = KEREK.LE
|
||||||
ROUNDUP = KEREK.FEL
|
ROUNDUP = KEREK.FEL
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -450,10 +456,12 @@ DOLLAR = FORINT
|
||||||
EXACT = AZONOS
|
EXACT = AZONOS
|
||||||
FIND = SZÖVEG.TALÁL
|
FIND = SZÖVEG.TALÁL
|
||||||
FIXED = FIX
|
FIXED = FIX
|
||||||
|
ISTHAIDIGIT = ON.THAI.NUMERO
|
||||||
LEFT = BAL
|
LEFT = BAL
|
||||||
LEN = HOSSZ
|
LEN = HOSSZ
|
||||||
LOWER = KISBETŰ
|
LOWER = KISBETŰ
|
||||||
MID = KÖZÉP
|
MID = KÖZÉP
|
||||||
|
NUMBERSTRING = SZÁM.BETŰVEL
|
||||||
NUMBERVALUE = SZÁMÉRTÉK
|
NUMBERVALUE = SZÁMÉRTÉK
|
||||||
PHONETIC = FONETIKUS
|
PHONETIC = FONETIKUS
|
||||||
PROPER = TNÉV
|
PROPER = TNÉV
|
||||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = HELYETTE
|
||||||
T = T
|
T = T
|
||||||
TEXT = SZÖVEG
|
TEXT = SZÖVEG
|
||||||
TEXTJOIN = SZÖVEGÖSSZEFŰZÉS
|
TEXTJOIN = SZÖVEGÖSSZEFŰZÉS
|
||||||
|
THAIDIGIT = THAISZÁM
|
||||||
|
THAINUMSOUND = THAISZÁMHANG
|
||||||
|
THAINUMSTRING = THAISZÁMKAR
|
||||||
|
THAISTRINGLENGTH = THAIKARHOSSZ
|
||||||
TRIM = KIMETSZ
|
TRIM = KIMETSZ
|
||||||
UNICHAR = UNIKARAKTER
|
UNICHAR = UNIKARAKTER
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = DB.VAR.POP
|
||||||
##
|
##
|
||||||
DATE = DATA
|
DATE = DATA
|
||||||
DATEDIF = DATA.DIFF
|
DATEDIF = DATA.DIFF
|
||||||
|
DATESTRING = DATA.STRINGA
|
||||||
DATEVALUE = DATA.VALORE
|
DATEVALUE = DATA.VALORE
|
||||||
DAY = GIORNO
|
DAY = GIORNO
|
||||||
DAYS = GIORNI
|
DAYS = GIORNI
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = GIORNI.LAVORATIVI.TOT
|
||||||
NETWORKDAYS.INTL = GIORNI.LAVORATIVI.TOT.INTL
|
NETWORKDAYS.INTL = GIORNI.LAVORATIVI.TOT.INTL
|
||||||
NOW = ADESSO
|
NOW = ADESSO
|
||||||
SECOND = SECONDO
|
SECOND = SECONDO
|
||||||
|
THAIDAYOFWEEK = THAIGIORNODELLASETTIMANA
|
||||||
|
THAIMONTHOFYEAR = THAIMESEDELLANNO
|
||||||
|
THAIYEAR = THAIANNO
|
||||||
TIME = ORARIO
|
TIME = ORARIO
|
||||||
TIMEVALUE = ORARIO.VALORE
|
TIMEVALUE = ORARIO.VALORE
|
||||||
TODAY = OGGI
|
TODAY = OGGI
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = CASUALE
|
||||||
RANDBETWEEN = CASUALE.TRA
|
RANDBETWEEN = CASUALE.TRA
|
||||||
ROMAN = ROMANO
|
ROMAN = ROMANO
|
||||||
ROUND = ARROTONDA
|
ROUND = ARROTONDA
|
||||||
|
ROUNDBAHTDOWN = ARROTBAHTGIU
|
||||||
|
ROUNDBAHTUP = ARROTBAHTSU
|
||||||
ROUNDDOWN = ARROTONDA.PER.DIF
|
ROUNDDOWN = ARROTONDA.PER.DIF
|
||||||
ROUNDUP = ARROTONDA.PER.ECC
|
ROUNDUP = ARROTONDA.PER.ECC
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -450,10 +456,12 @@ DOLLAR = VALUTA
|
||||||
EXACT = IDENTICO
|
EXACT = IDENTICO
|
||||||
FIND = TROVA
|
FIND = TROVA
|
||||||
FIXED = FISSO
|
FIXED = FISSO
|
||||||
|
ISTHAIDIGIT = ÈTHAICIFRA
|
||||||
LEFT = SINISTRA
|
LEFT = SINISTRA
|
||||||
LEN = LUNGHEZZA
|
LEN = LUNGHEZZA
|
||||||
LOWER = MINUSC
|
LOWER = MINUSC
|
||||||
MID = STRINGA.ESTRAI
|
MID = STRINGA.ESTRAI
|
||||||
|
NUMBERSTRING = NUMERO.STRINGA
|
||||||
NUMBERVALUE = NUMERO.VALORE
|
NUMBERVALUE = NUMERO.VALORE
|
||||||
PHONETIC = FURIGANA
|
PHONETIC = FURIGANA
|
||||||
PROPER = MAIUSC.INIZ
|
PROPER = MAIUSC.INIZ
|
||||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = SOSTITUISCI
|
||||||
T = T
|
T = T
|
||||||
TEXT = TESTO
|
TEXT = TESTO
|
||||||
TEXTJOIN = TESTO.UNISCI
|
TEXTJOIN = TESTO.UNISCI
|
||||||
|
THAIDIGIT = THAICIFRA
|
||||||
|
THAINUMSOUND = THAINUMSUONO
|
||||||
|
THAINUMSTRING = THAISZÁMKAR
|
||||||
|
THAISTRINGLENGTH = THAILUNGSTRINGA
|
||||||
TRIM = ANNULLA.SPAZI
|
TRIM = ANNULLA.SPAZI
|
||||||
UNICHAR = CARATT.UNI
|
UNICHAR = CARATT.UNI
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = DVARIANSP
|
||||||
##
|
##
|
||||||
DATE = DATO
|
DATE = DATO
|
||||||
DATEDIF = DATODIFF
|
DATEDIF = DATODIFF
|
||||||
|
DATESTRING = DATOSTRENG
|
||||||
DATEVALUE = DATOVERDI
|
DATEVALUE = DATOVERDI
|
||||||
DAY = DAG
|
DAY = DAG
|
||||||
DAYS = DAGER
|
DAYS = DAGER
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = NETT.ARBEIDSDAGER
|
||||||
NETWORKDAYS.INTL = NETT.ARBEIDSDAGER.INTL
|
NETWORKDAYS.INTL = NETT.ARBEIDSDAGER.INTL
|
||||||
NOW = NÅ
|
NOW = NÅ
|
||||||
SECOND = SEKUND
|
SECOND = SEKUND
|
||||||
|
THAIDAYOFWEEK = THAIUKEDAG
|
||||||
|
THAIMONTHOFYEAR = THAIMÅNED
|
||||||
|
THAIYEAR = THAIÅR
|
||||||
TIME = TID
|
TIME = TID
|
||||||
TIMEVALUE = TIDSVERDI
|
TIMEVALUE = TIDSVERDI
|
||||||
TODAY = IDAG
|
TODAY = IDAG
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = TILFELDIG
|
||||||
RANDBETWEEN = TILFELDIGMELLOM
|
RANDBETWEEN = TILFELDIGMELLOM
|
||||||
ROMAN = ROMERTALL
|
ROMAN = ROMERTALL
|
||||||
ROUND = AVRUND
|
ROUND = AVRUND
|
||||||
|
ROUNDBAHTDOWN = RUNDAVBAHTNEDOVER
|
||||||
|
ROUNDBAHTUP = RUNDAVBAHTOPPOVER
|
||||||
ROUNDDOWN = AVRUND.NED
|
ROUNDDOWN = AVRUND.NED
|
||||||
ROUNDUP = AVRUND.OPP
|
ROUNDUP = AVRUND.OPP
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -451,10 +457,12 @@ DOLLAR = VALUTA
|
||||||
EXACT = EKSAKT
|
EXACT = EKSAKT
|
||||||
FIND = FINN
|
FIND = FINN
|
||||||
FIXED = FASTSATT
|
FIXED = FASTSATT
|
||||||
|
ISTHAIDIGIT = ERTHAISIFFER
|
||||||
LEFT = VENSTRE
|
LEFT = VENSTRE
|
||||||
LEN = LENGDE
|
LEN = LENGDE
|
||||||
LOWER = SMÅ
|
LOWER = SMÅ
|
||||||
MID = DELTEKST
|
MID = DELTEKST
|
||||||
|
NUMBERSTRING = TALLSTRENG
|
||||||
NUMBERVALUE = TALLVERDI
|
NUMBERVALUE = TALLVERDI
|
||||||
PHONETIC = FURIGANA
|
PHONETIC = FURIGANA
|
||||||
PROPER = STOR.FORBOKSTAV
|
PROPER = STOR.FORBOKSTAV
|
||||||
|
|
@ -466,6 +474,10 @@ SUBSTITUTE = BYTT.UT
|
||||||
T = T
|
T = T
|
||||||
TEXT = TEKST
|
TEXT = TEKST
|
||||||
TEXTJOIN = TEKST.KOMBINER
|
TEXTJOIN = TEKST.KOMBINER
|
||||||
|
THAIDIGIT = THAISIFFER
|
||||||
|
THAINUMSOUND = THAINUMLYD
|
||||||
|
THAINUMSTRING = THAINUMSTRENG
|
||||||
|
THAISTRINGLENGTH = THAISTRENGLENGDE
|
||||||
TRIM = TRIMME
|
TRIM = TRIMME
|
||||||
UNICHAR = UNICODETEGN
|
UNICHAR = UNICODETEGN
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ DVARP = DBVARP
|
||||||
## Datum- en tijdfuncties (Date & Time Functions)
|
## Datum- en tijdfuncties (Date & Time Functions)
|
||||||
##
|
##
|
||||||
DATE = DATUM
|
DATE = DATUM
|
||||||
|
DATESTRING = DATUMNOTATIE
|
||||||
DATEVALUE = DATUMWAARDE
|
DATEVALUE = DATUMWAARDE
|
||||||
DAY = DAG
|
DAY = DAG
|
||||||
DAYS = DAGEN
|
DAYS = DAGEN
|
||||||
|
|
@ -52,6 +53,9 @@ NETWORKDAYS = NETTO.WERKDAGEN
|
||||||
NETWORKDAYS.INTL = NETWERKDAGEN.INTL
|
NETWORKDAYS.INTL = NETWERKDAGEN.INTL
|
||||||
NOW = NU
|
NOW = NU
|
||||||
SECOND = SECONDE
|
SECOND = SECONDE
|
||||||
|
THAIDAYOFWEEK = THAIS.WEEKDAG
|
||||||
|
THAIMONTHOFYEAR = THAIS.MAAND.VAN.JAAR
|
||||||
|
THAIYEAR = THAIS.JAAR
|
||||||
TIME = TIJD
|
TIME = TIJD
|
||||||
TIMEVALUE = TIJDWAARDE
|
TIMEVALUE = TIJDWAARDE
|
||||||
TODAY = VANDAAG
|
TODAY = VANDAAG
|
||||||
|
|
@ -300,6 +304,8 @@ RAND = ASELECT
|
||||||
RANDBETWEEN = ASELECTTUSSEN
|
RANDBETWEEN = ASELECTTUSSEN
|
||||||
ROMAN = ROMEINS
|
ROMAN = ROMEINS
|
||||||
ROUND = AFRONDEN
|
ROUND = AFRONDEN
|
||||||
|
ROUNDBAHTDOWN = BAHT.AFR.NAAR.BENEDEN
|
||||||
|
ROUNDBAHTUP = BAHT.AFR.NAAR.BOVEN
|
||||||
ROUNDDOWN = AFRONDEN.NAAR.BENEDEN
|
ROUNDDOWN = AFRONDEN.NAAR.BENEDEN
|
||||||
ROUNDUP = AFRONDEN.NAAR.BOVEN
|
ROUNDUP = AFRONDEN.NAAR.BOVEN
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -449,10 +455,12 @@ DOLLAR = EURO
|
||||||
EXACT = GELIJK
|
EXACT = GELIJK
|
||||||
FIND = VIND.ALLES
|
FIND = VIND.ALLES
|
||||||
FIXED = VAST
|
FIXED = VAST
|
||||||
|
ISTHAIDIGIT = IS.THAIS.CIJFER
|
||||||
LEFT = LINKS
|
LEFT = LINKS
|
||||||
LEN = LENGTE
|
LEN = LENGTE
|
||||||
LOWER = KLEINE.LETTERS
|
LOWER = KLEINE.LETTERS
|
||||||
MID = DEEL
|
MID = DEEL
|
||||||
|
NUMBERSTRING = GETALNOTATIE
|
||||||
NUMBERVALUE = NUMERIEKE.WAARDE
|
NUMBERVALUE = NUMERIEKE.WAARDE
|
||||||
PHONETIC = FONETISCH
|
PHONETIC = FONETISCH
|
||||||
PROPER = BEGINLETTERS
|
PROPER = BEGINLETTERS
|
||||||
|
|
@ -464,6 +472,10 @@ SUBSTITUTE = SUBSTITUEREN
|
||||||
T = T
|
T = T
|
||||||
TEXT = TEKST
|
TEXT = TEKST
|
||||||
TEXTJOIN = TEKST.COMBINEREN
|
TEXTJOIN = TEKST.COMBINEREN
|
||||||
|
THAIDIGIT = THAIS.CIJFER
|
||||||
|
THAINUMSOUND = THAIS.GETAL.GELUID
|
||||||
|
THAINUMSTRING = THAIS.GETAL.REEKS
|
||||||
|
THAISTRINGLENGTH = THAIS.REEKS.LENGTE
|
||||||
TRIM = SPATIES.WISSEN
|
TRIM = SPATIES.WISSEN
|
||||||
UNICHAR = UNITEKEN
|
UNICHAR = UNITEKEN
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = BD.WARIANCJA.POPUL
|
||||||
##
|
##
|
||||||
DATE = DATA
|
DATE = DATA
|
||||||
DATEDIF = DATA.RÓŻNICA
|
DATEDIF = DATA.RÓŻNICA
|
||||||
|
DATESTRING = DATA.CIĄG.ZNAK
|
||||||
DATEVALUE = DATA.WARTOŚĆ
|
DATEVALUE = DATA.WARTOŚĆ
|
||||||
DAY = DZIEŃ
|
DAY = DZIEŃ
|
||||||
DAYS = DNI
|
DAYS = DNI
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = DNI.ROBOCZE
|
||||||
NETWORKDAYS.INTL = DNI.ROBOCZE.NIESTAND
|
NETWORKDAYS.INTL = DNI.ROBOCZE.NIESTAND
|
||||||
NOW = TERAZ
|
NOW = TERAZ
|
||||||
SECOND = SEKUNDA
|
SECOND = SEKUNDA
|
||||||
|
THAIDAYOFWEEK = TAJ.DZIEŃ.TYGODNIA
|
||||||
|
THAIMONTHOFYEAR = TAJ.MIESIĄC.ROKU
|
||||||
|
THAIYEAR = TAJ.ROK
|
||||||
TIME = CZAS
|
TIME = CZAS
|
||||||
TIMEVALUE = CZAS.WARTOŚĆ
|
TIMEVALUE = CZAS.WARTOŚĆ
|
||||||
TODAY = DZIŚ
|
TODAY = DZIŚ
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = LOS
|
||||||
RANDBETWEEN = LOS.ZAKR
|
RANDBETWEEN = LOS.ZAKR
|
||||||
ROMAN = RZYMSKIE
|
ROMAN = RZYMSKIE
|
||||||
ROUND = ZAOKR
|
ROUND = ZAOKR
|
||||||
|
ROUNDBAHTDOWN = ZAOKR.DÓŁ.BAT
|
||||||
|
ROUNDBAHTUP = ZAOKR.GÓRA.BAT
|
||||||
ROUNDDOWN = ZAOKR.DÓŁ
|
ROUNDDOWN = ZAOKR.DÓŁ
|
||||||
ROUNDUP = ZAOKR.GÓRA
|
ROUNDUP = ZAOKR.GÓRA
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -450,10 +456,12 @@ DOLLAR = KWOTA
|
||||||
EXACT = PORÓWNAJ
|
EXACT = PORÓWNAJ
|
||||||
FIND = ZNAJDŹ
|
FIND = ZNAJDŹ
|
||||||
FIXED = ZAOKR.DO.TEKST
|
FIXED = ZAOKR.DO.TEKST
|
||||||
|
ISTHAIDIGIT = CZY.CYFRA.TAJ
|
||||||
LEFT = LEWY
|
LEFT = LEWY
|
||||||
LEN = DŁ
|
LEN = DŁ
|
||||||
LOWER = LITERY.MAŁE
|
LOWER = LITERY.MAŁE
|
||||||
MID = FRAGMENT.TEKSTU
|
MID = FRAGMENT.TEKSTU
|
||||||
|
NUMBERSTRING = LICZBA.CIĄG.ZNAK
|
||||||
NUMBERVALUE = WARTOŚĆ.LICZBOWA
|
NUMBERVALUE = WARTOŚĆ.LICZBOWA
|
||||||
PROPER = Z.WIELKIEJ.LITERY
|
PROPER = Z.WIELKIEJ.LITERY
|
||||||
REPLACE = ZASTĄP
|
REPLACE = ZASTĄP
|
||||||
|
|
@ -464,6 +472,10 @@ SUBSTITUTE = PODSTAW
|
||||||
T = T
|
T = T
|
||||||
TEXT = TEKST
|
TEXT = TEKST
|
||||||
TEXTJOIN = POŁĄCZ.TEKSTY
|
TEXTJOIN = POŁĄCZ.TEKSTY
|
||||||
|
THAIDIGIT = TAJ.CYFRA
|
||||||
|
THAINUMSOUND = TAJ.DŹWIĘK.NUM
|
||||||
|
THAINUMSTRING = TAJ.CIĄG.NUM
|
||||||
|
THAISTRINGLENGTH = TAJ.DŁUGOŚĆ.CIĄGU
|
||||||
TRIM = USUŃ.ZBĘDNE.ODSTĘPY
|
TRIM = USUŃ.ZBĘDNE.ODSTĘPY
|
||||||
UNICHAR = ZNAK.UNICODE
|
UNICHAR = ZNAK.UNICODE
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = BDVARP
|
||||||
##
|
##
|
||||||
DATE = DATA
|
DATE = DATA
|
||||||
DATEDIF = DATADIF
|
DATEDIF = DATADIF
|
||||||
|
DATESTRING = DATA.SÉRIE
|
||||||
DATEVALUE = DATA.VALOR
|
DATEVALUE = DATA.VALOR
|
||||||
DAY = DIA
|
DAY = DIA
|
||||||
DAYS = DIAS
|
DAYS = DIAS
|
||||||
|
|
@ -454,6 +455,7 @@ LEFT = ESQUERDA
|
||||||
LEN = NÚM.CARACT
|
LEN = NÚM.CARACT
|
||||||
LOWER = MINÚSCULA
|
LOWER = MINÚSCULA
|
||||||
MID = EXT.TEXTO
|
MID = EXT.TEXTO
|
||||||
|
NUMBERSTRING = SEQÜÊNCIA.NÚMERO
|
||||||
NUMBERVALUE = VALORNUMÉRICO
|
NUMBERVALUE = VALORNUMÉRICO
|
||||||
PHONETIC = FONÉTICA
|
PHONETIC = FONÉTICA
|
||||||
PROPER = PRI.MAIÚSCULA
|
PROPER = PRI.MAIÚSCULA
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = BDVARP
|
||||||
##
|
##
|
||||||
DATE = DATA
|
DATE = DATA
|
||||||
DATEDIF = DATADIF
|
DATEDIF = DATADIF
|
||||||
|
DATESTRING = DATA.CADEIA
|
||||||
DATEVALUE = DATA.VALOR
|
DATEVALUE = DATA.VALOR
|
||||||
DAY = DIA
|
DAY = DIA
|
||||||
DAYS = DIAS
|
DAYS = DIAS
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = DIATRABALHOTOTAL
|
||||||
NETWORKDAYS.INTL = DIATRABALHOTOTAL.INTL
|
NETWORKDAYS.INTL = DIATRABALHOTOTAL.INTL
|
||||||
NOW = AGORA
|
NOW = AGORA
|
||||||
SECOND = SEGUNDO
|
SECOND = SEGUNDO
|
||||||
|
THAIDAYOFWEEK = DIA.DA.SEMANA.TAILANDÊS
|
||||||
|
THAIMONTHOFYEAR = MÊS.DO.ANO.TAILANDÊS
|
||||||
|
THAIYEAR = ANO.TAILANDÊS
|
||||||
TIME = TEMPO
|
TIME = TEMPO
|
||||||
TIMEVALUE = VALOR.TEMPO
|
TIMEVALUE = VALOR.TEMPO
|
||||||
TODAY = HOJE
|
TODAY = HOJE
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = ALEATÓRIO
|
||||||
RANDBETWEEN = ALEATÓRIOENTRE
|
RANDBETWEEN = ALEATÓRIOENTRE
|
||||||
ROMAN = ROMANO
|
ROMAN = ROMANO
|
||||||
ROUND = ARRED
|
ROUND = ARRED
|
||||||
|
ROUNDBAHTDOWN = ARREDOND.BAHT.BAIXO
|
||||||
|
ROUNDBAHTUP = ARREDOND.BAHT.CIMA
|
||||||
ROUNDDOWN = ARRED.PARA.BAIXO
|
ROUNDDOWN = ARRED.PARA.BAIXO
|
||||||
ROUNDUP = ARRED.PARA.CIMA
|
ROUNDUP = ARRED.PARA.CIMA
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -450,10 +456,12 @@ DOLLAR = MOEDA
|
||||||
EXACT = EXATO
|
EXACT = EXATO
|
||||||
FIND = LOCALIZAR
|
FIND = LOCALIZAR
|
||||||
FIXED = FIXA
|
FIXED = FIXA
|
||||||
|
ISTHAIDIGIT = É.DÍGITO.TAILANDÊS
|
||||||
LEFT = ESQUERDA
|
LEFT = ESQUERDA
|
||||||
LEN = NÚM.CARAT
|
LEN = NÚM.CARAT
|
||||||
LOWER = MINÚSCULAS
|
LOWER = MINÚSCULAS
|
||||||
MID = SEG.TEXTO
|
MID = SEG.TEXTO
|
||||||
|
NUMBERSTRING = NÚMERO.CADEIA
|
||||||
NUMBERVALUE = VALOR.NÚMERO
|
NUMBERVALUE = VALOR.NÚMERO
|
||||||
PHONETIC = FONÉTICA
|
PHONETIC = FONÉTICA
|
||||||
PROPER = INICIAL.MAIÚSCULA
|
PROPER = INICIAL.MAIÚSCULA
|
||||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = SUBST
|
||||||
T = T
|
T = T
|
||||||
TEXT = TEXTO
|
TEXT = TEXTO
|
||||||
TEXTJOIN = UNIRTEXTO
|
TEXTJOIN = UNIRTEXTO
|
||||||
|
THAIDIGIT = DÍGITO.TAILANDÊS
|
||||||
|
THAINUMSOUND = SOM.NÚM.TAILANDÊS
|
||||||
|
THAINUMSTRING = CADEIA.NÚM.TAILANDÊS
|
||||||
|
THAISTRINGLENGTH = COMP.CADEIA.TAILANDÊS
|
||||||
TRIM = COMPACTAR
|
TRIM = COMPACTAR
|
||||||
UNICHAR = UNICARÁT
|
UNICHAR = UNICARÁT
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = БДДИСПП
|
||||||
##
|
##
|
||||||
DATE = ДАТА
|
DATE = ДАТА
|
||||||
DATEDIF = РАЗНДАТ
|
DATEDIF = РАЗНДАТ
|
||||||
|
DATESTRING = СТРОКАДАННЫХ
|
||||||
DATEVALUE = ДАТАЗНАЧ
|
DATEVALUE = ДАТАЗНАЧ
|
||||||
DAY = ДЕНЬ
|
DAY = ДЕНЬ
|
||||||
DAYS = ДНИ
|
DAYS = ДНИ
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = ЧИСТРАБДНИ
|
||||||
NETWORKDAYS.INTL = ЧИСТРАБДНИ.МЕЖД
|
NETWORKDAYS.INTL = ЧИСТРАБДНИ.МЕЖД
|
||||||
NOW = ТДАТА
|
NOW = ТДАТА
|
||||||
SECOND = СЕКУНДЫ
|
SECOND = СЕКУНДЫ
|
||||||
|
THAIDAYOFWEEK = ТАЙДЕНЬНЕД
|
||||||
|
THAIMONTHOFYEAR = ТАЙМЕСЯЦ
|
||||||
|
THAIYEAR = ТАЙГОД
|
||||||
TIME = ВРЕМЯ
|
TIME = ВРЕМЯ
|
||||||
TIMEVALUE = ВРЕМЗНАЧ
|
TIMEVALUE = ВРЕМЗНАЧ
|
||||||
TODAY = СЕГОДНЯ
|
TODAY = СЕГОДНЯ
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = СЛЧИС
|
||||||
RANDBETWEEN = СЛУЧМЕЖДУ
|
RANDBETWEEN = СЛУЧМЕЖДУ
|
||||||
ROMAN = РИМСКОЕ
|
ROMAN = РИМСКОЕ
|
||||||
ROUND = ОКРУГЛ
|
ROUND = ОКРУГЛ
|
||||||
|
ROUNDBAHTDOWN = ОКРУГЛБАТВНИЗ
|
||||||
|
ROUNDBAHTUP = ОКРУГЛБАТВВЕРХ
|
||||||
ROUNDDOWN = ОКРУГЛВНИЗ
|
ROUNDDOWN = ОКРУГЛВНИЗ
|
||||||
ROUNDUP = ОКРУГЛВВЕРХ
|
ROUNDUP = ОКРУГЛВВЕРХ
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -450,10 +456,12 @@ DOLLAR = РУБЛЬ
|
||||||
EXACT = СОВПАД
|
EXACT = СОВПАД
|
||||||
FIND = НАЙТИ
|
FIND = НАЙТИ
|
||||||
FIXED = ФИКСИРОВАННЫЙ
|
FIXED = ФИКСИРОВАННЫЙ
|
||||||
|
ISTHAIDIGIT = TAYRAKAMIYSA
|
||||||
LEFT = ЛЕВСИМВ
|
LEFT = ЛЕВСИМВ
|
||||||
LEN = ДЛСТР
|
LEN = ДЛСТР
|
||||||
LOWER = СТРОЧН
|
LOWER = СТРОЧН
|
||||||
MID = ПСТР
|
MID = ПСТР
|
||||||
|
NUMBERSTRING = СТРОКАЧИСЕЛ
|
||||||
NUMBERVALUE = ЧЗНАЧ
|
NUMBERVALUE = ЧЗНАЧ
|
||||||
PROPER = ПРОПНАЧ
|
PROPER = ПРОПНАЧ
|
||||||
REPLACE = ЗАМЕНИТЬ
|
REPLACE = ЗАМЕНИТЬ
|
||||||
|
|
@ -464,6 +472,10 @@ SUBSTITUTE = ПОДСТАВИТЬ
|
||||||
T = Т
|
T = Т
|
||||||
TEXT = ТЕКСТ
|
TEXT = ТЕКСТ
|
||||||
TEXTJOIN = ОБЪЕДИНИТЬ
|
TEXTJOIN = ОБЪЕДИНИТЬ
|
||||||
|
THAIDIGIT = ТАЙЦИФРА
|
||||||
|
THAINUMSOUND = ТАЙЧИСЛОВЗВУК
|
||||||
|
THAINUMSTRING = ТАЙЧИСЛОВСТРОКУ
|
||||||
|
THAISTRINGLENGTH = ТАЙДЛИНАСТРОКИ
|
||||||
TRIM = СЖПРОБЕЛЫ
|
TRIM = СЖПРОБЕЛЫ
|
||||||
UNICHAR = ЮНИСИМВ
|
UNICHAR = ЮНИСИМВ
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,9 @@ NETWORKDAYS = NETTOARBETSDAGAR
|
||||||
NETWORKDAYS.INTL = NETTOARBETSDAGAR.INT
|
NETWORKDAYS.INTL = NETTOARBETSDAGAR.INT
|
||||||
NOW = NU
|
NOW = NU
|
||||||
SECOND = SEKUND
|
SECOND = SEKUND
|
||||||
|
THAIDAYOFWEEK = THAIVECKODAG
|
||||||
|
THAIMONTHOFYEAR = THAIMÅNAD
|
||||||
|
THAIYEAR = THAIÅR
|
||||||
TIME = KLOCKSLAG
|
TIME = KLOCKSLAG
|
||||||
TIMEVALUE = TIDVÄRDE
|
TIMEVALUE = TIDVÄRDE
|
||||||
TODAY = IDAG
|
TODAY = IDAG
|
||||||
|
|
@ -300,6 +303,8 @@ RAND = SLUMP
|
||||||
RANDBETWEEN = SLUMP.MELLAN
|
RANDBETWEEN = SLUMP.MELLAN
|
||||||
ROMAN = ROMERSK
|
ROMAN = ROMERSK
|
||||||
ROUND = AVRUNDA
|
ROUND = AVRUNDA
|
||||||
|
ROUNDBAHTDOWN = AVRUNDABAHTNEDÅT
|
||||||
|
ROUNDBAHTUP = AVRUNDABAHTUPPÅT
|
||||||
ROUNDDOWN = AVRUNDA.NEDÅT
|
ROUNDDOWN = AVRUNDA.NEDÅT
|
||||||
ROUNDUP = AVRUNDA.UPPÅT
|
ROUNDUP = AVRUNDA.UPPÅT
|
||||||
SEC = SEK
|
SEC = SEK
|
||||||
|
|
@ -463,6 +468,10 @@ SUBSTITUTE = BYT.UT
|
||||||
T = T
|
T = T
|
||||||
TEXT = TEXT
|
TEXT = TEXT
|
||||||
TEXTJOIN = TEXTJOIN
|
TEXTJOIN = TEXTJOIN
|
||||||
|
THAIDIGIT = THAISIFFRA
|
||||||
|
THAINUMSOUND = THAITALLJUD
|
||||||
|
THAINUMSTRING = THAITALSTRÄNG
|
||||||
|
THAISTRINGLENGTH = THAISTRÄNGLÄNGD
|
||||||
TRIM = RENSA
|
TRIM = RENSA
|
||||||
UNICHAR = UNITECKENKOD
|
UNICHAR = UNITECKENKOD
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ DVARP = VSEÇVARS
|
||||||
##
|
##
|
||||||
DATE = TARİH
|
DATE = TARİH
|
||||||
DATEDIF = ETARİHLİ
|
DATEDIF = ETARİHLİ
|
||||||
|
DATESTRING = TARİHDİZİ
|
||||||
DATEVALUE = TARİHSAYISI
|
DATEVALUE = TARİHSAYISI
|
||||||
DAY = GÜN
|
DAY = GÜN
|
||||||
DAYS = GÜNSAY
|
DAYS = GÜNSAY
|
||||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = TAMİŞGÜNÜ
|
||||||
NETWORKDAYS.INTL = TAMİŞGÜNÜ.ULUSL
|
NETWORKDAYS.INTL = TAMİŞGÜNÜ.ULUSL
|
||||||
NOW = ŞİMDİ
|
NOW = ŞİMDİ
|
||||||
SECOND = SANİYE
|
SECOND = SANİYE
|
||||||
|
THAIDAYOFWEEK = TAYHAFTANINGÜNÜ
|
||||||
|
THAIMONTHOFYEAR = TAYYILINAYI
|
||||||
|
THAIYEAR = TAYYILI
|
||||||
TIME = ZAMAN
|
TIME = ZAMAN
|
||||||
TIMEVALUE = ZAMANSAYISI
|
TIMEVALUE = ZAMANSAYISI
|
||||||
TODAY = BUGÜN
|
TODAY = BUGÜN
|
||||||
|
|
@ -301,6 +305,8 @@ RAND = S_SAYI_ÜRET
|
||||||
RANDBETWEEN = RASTGELEARADA
|
RANDBETWEEN = RASTGELEARADA
|
||||||
ROMAN = ROMEN
|
ROMAN = ROMEN
|
||||||
ROUND = YUVARLA
|
ROUND = YUVARLA
|
||||||
|
ROUNDBAHTDOWN = BAHTAŞAĞIYUVARLA
|
||||||
|
ROUNDBAHTUP = BAHTYUKARIYUVARLA
|
||||||
ROUNDDOWN = AŞAĞIYUVARLA
|
ROUNDDOWN = AŞAĞIYUVARLA
|
||||||
ROUNDUP = YUKARIYUVARLA
|
ROUNDUP = YUKARIYUVARLA
|
||||||
SEC = SEC
|
SEC = SEC
|
||||||
|
|
@ -450,10 +456,12 @@ DOLLAR = LİRA
|
||||||
EXACT = ÖZDEŞ
|
EXACT = ÖZDEŞ
|
||||||
FIND = BUL
|
FIND = BUL
|
||||||
FIXED = SAYIDÜZENLE
|
FIXED = SAYIDÜZENLE
|
||||||
|
ISTHAIDIGIT = TAYRAKAMIYSA
|
||||||
LEFT = SOLDAN
|
LEFT = SOLDAN
|
||||||
LEN = UZUNLUK
|
LEN = UZUNLUK
|
||||||
LOWER = KÜÇÜKHARF
|
LOWER = KÜÇÜKHARF
|
||||||
MID = PARÇAAL
|
MID = PARÇAAL
|
||||||
|
NUMBERSTRING = SAYIDİZİ
|
||||||
NUMBERVALUE = SAYIDEĞERİ
|
NUMBERVALUE = SAYIDEĞERİ
|
||||||
PHONETIC = SES
|
PHONETIC = SES
|
||||||
PROPER = YAZIM.DÜZENİ
|
PROPER = YAZIM.DÜZENİ
|
||||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = YERİNEKOY
|
||||||
T = M
|
T = M
|
||||||
TEXT = METNEÇEVİR
|
TEXT = METNEÇEVİR
|
||||||
TEXTJOIN = METİNBİRLEŞTİR
|
TEXTJOIN = METİNBİRLEŞTİR
|
||||||
|
THAIDIGIT = TAYRAKAM
|
||||||
|
THAINUMSOUND = TAYSAYISES
|
||||||
|
THAINUMSTRING = TAYSAYIDİZE
|
||||||
|
THAISTRINGLENGTH = TAYDİZEUZUNLUĞU
|
||||||
TRIM = KIRP
|
TRIM = KIRP
|
||||||
UNICHAR = UNICODEKARAKTERİ
|
UNICHAR = UNICODEKARAKTERİ
|
||||||
UNICODE = UNICODE
|
UNICODE = UNICODE
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ class Font extends Supervisor
|
||||||
protected $name = 'Calibri';
|
protected $name = 'Calibri';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Font Size.
|
* Font Size in points.
|
||||||
*
|
*
|
||||||
* @var null|float
|
* @var null|float
|
||||||
*/
|
*/
|
||||||
|
|
@ -249,20 +249,27 @@ class Font extends Supervisor
|
||||||
/**
|
/**
|
||||||
* Set Size.
|
* Set Size.
|
||||||
*
|
*
|
||||||
* @param float $pValue
|
* @param float $fontSizeInPoints
|
||||||
*
|
*
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setSize($pValue)
|
public function setSize($fontSizeInPoints)
|
||||||
{
|
{
|
||||||
if ($pValue == '') {
|
if (is_string($fontSizeInPoints) || is_int($fontSizeInPoints)) {
|
||||||
$pValue = 10;
|
$fontSizeInPoints = (float) $fontSizeInPoints; // $pValue = 0 if given string is not numeric
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Size must be a positive floating point number
|
||||||
|
// ECMA-376-1:2016, part 1, chapter 18.4.11 sz (Font Size), p. 1536
|
||||||
|
if (!is_float($fontSizeInPoints) || !($fontSizeInPoints > 0)) {
|
||||||
|
$fontSizeInPoints = 10.0;
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->isSupervisor) {
|
if ($this->isSupervisor) {
|
||||||
$styleArray = $this->getStyleArray(['size' => $pValue]);
|
$styleArray = $this->getStyleArray(['size' => $fontSizeInPoints]);
|
||||||
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
|
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
|
||||||
} else {
|
} else {
|
||||||
$this->size = $pValue;
|
$this->size = $fontSizeInPoints;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ namespace PhpOffice\PhpSpreadsheetTests;
|
||||||
use PhpOffice\PhpSpreadsheet\Calculation\Category as Cat;
|
use PhpOffice\PhpSpreadsheet\Calculation\Category as Cat;
|
||||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||||
use PhpOffice\PhpSpreadsheet\Calculation\Logical;
|
use PhpOffice\PhpSpreadsheet\Calculation\Logical;
|
||||||
use PhpOffice\PhpSpreadsheet\DocumentGenerator;
|
use PhpOffice\PhpSpreadsheetInfra\DocumentGenerator;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
use UnexpectedValueException;
|
use UnexpectedValueException;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace PhpOffice\PhpSpreadsheetTests;
|
||||||
|
|
||||||
|
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||||
|
use PhpOffice\PhpSpreadsheetInfra\LocaleGenerator;
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use ReflectionClass;
|
||||||
|
|
||||||
|
class LocaleGeneratorTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testLocaleGenerator(): void
|
||||||
|
{
|
||||||
|
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))
|
||||||
|
->getProperty('phpSpreadsheetFunctions');
|
||||||
|
$phpSpreadsheetFunctionsProperty->setAccessible(true);
|
||||||
|
$phpSpreadsheetFunctions = $phpSpreadsheetFunctionsProperty->getValue();
|
||||||
|
|
||||||
|
$localeGenerator = new LocaleGenerator(
|
||||||
|
realpath(__DIR__ . '/../../src/PhpSpreadsheet/Calculation/locale/'),
|
||||||
|
'Translations.xlsx',
|
||||||
|
$phpSpreadsheetFunctions
|
||||||
|
);
|
||||||
|
$localeGenerator->generateLocales();
|
||||||
|
|
||||||
|
$testLocales = [
|
||||||
|
'fr',
|
||||||
|
'nl',
|
||||||
|
'pt',
|
||||||
|
'pt_br',
|
||||||
|
'ru',
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($testLocales as $locale) {
|
||||||
|
$locale = str_replace('_', '/', $locale);
|
||||||
|
$path = realpath(__DIR__ . "/../../src/PhpSpreadsheet/Calculation/locale/{$locale}");
|
||||||
|
self::assertFileExists("{$path}/config");
|
||||||
|
self::assertFileExists("{$path}/functions");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue